人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問させて下さい。
http://q.hatena.ne.jp/1449280991
上記質問のa-kuma3さんの回答を使わせて頂いているのですが、以下のような改造は出来ないでしょうか。

1)親カテゴリを表示させない
2)子カテゴリの【】内文字列を表示させない

自分で色々と試したのですが、上手くいかず質問させて頂きます。
宜しくお願い致します。

1496264259
●拡大する

●質問者: ぬる太
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ぽけっとしすてむ
●100ポイント ベストアンサー

こちらでいかがでしょうか。
※以下のコードは http://q.hatena.ne.jp/1449280991#a1253343 の2つ目のコードを改変しています。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
(function($) {

$(function() {
 var re = /【(.*)】.*\((.*)\)/;
 var forEach = Array.prototype.forEach;
 var cat_name_map = {};
 forEach.call(document.querySelectorAll("div.hatena-module-category ul.hatena-urllist li a"), function(a) {
 var match = re.exec(a.textContent);
 if (match) {
 var cat = match[1];
 var ar = cat_name_map[cat];
 if (! ar) {
 ar = [0, 0];
 }
 ar[0] += 1;
 ar[1] += parseInt(match[2]);
 cat_name_map[cat] = ar;
 }
 });
 var cat_node_map = {};
 forEach.call(document.querySelectorAll("div.hatena-module-category ul.hatena-urllist li a"), function(a) {
 var match = re.exec(a.textContent);
 if (match) {
 var cat = match[1];
 if (cat_name_map[cat][0] > 1) {
 var original_item = a.parentNode;
 var new_item = document.createElement("LI");
 new_item.innerHTML = original_item.innerHTML;
/* 追加個所 */
 var new_item_innerlink = new_item.querySelector("a");
 new_item_innerlink.textContent = new_item_innerlink.textContent.split(/【.*】/,2)[1];
/* 追加個所 */

 new_item.style.paddingLeft = "2em";
 var sub_category_list = cat_node_map[ cat ];
 if (! sub_category_list) {
 /*
 LI : original_item
 |
 V
 LI : sub_category_parent
 SPAN : arrow
 SPAN : label
 UL : sub_category_list
 LI : new_item
 */
 removeParentCategory(original_item.parentNode,cat);
 var sub_category_parent = document.createElement("LI");
 original_item.parentNode.insertBefore(sub_category_parent, original_item);
 var arrow = document.createElement("SPAN");
 arrow.innerHTML = "&#9654;";
 arrow.style.marginRight = "0.5ex";
 arrow.style.cursor = "pointer";
 arrow.onclick = function() {
 var sub_category_list = this.nextSibling.nextSibling;
 if (sub_category_list.style.display == "none") {
 this.innerHTML = "▼";
 sub_category_list.style.display = "";
 } else {
 this.innerHTML = "&#9654;";
 sub_category_list.style.display = "none";
 }
 };
 sub_category_parent.appendChild(arrow);
 var label = document.createElement("SPAN");
 label.innerHTML = cat + " (" + cat_name_map[cat][1] + ")";
 label.style.textDecoration = "underline";
 label.style.color = "#0E4B84";
 label.style.cursor = "pointer";
 label.onclick = function() {
 this.previousSibling.onclick();
 };
 sub_category_parent.appendChild(label);
 sub_category_list = document.createElement("UL");
 sub_category_list.style.display = "none";
 sub_category_parent.appendChild(sub_category_list);
 cat_node_map[ cat ] = sub_category_list;
 }
 sub_category_list.appendChild(new_item);
 original_item.parentNode.removeChild(original_item);
 }
 }
 });
/* 追加個所 */
 function removeParentCategory(nodeLists,target){
 var matchExp = new RegExp("^" + target + " \\(([0-9]+)\\)");
 forEach.call(nodeLists.querySelectorAll("div.hatena-module-category ul.hatena-urllist li a"), function(a) {
 if(a.innerText.match(matchExp)){
 a.parentElement.style.display = "none"; // 念のため display:none とする
 }
 });
 }
/* 追加個所 */

});

})(jQuery);
</script>

ぬる太さんのコメント
ありがとうございます。 希望通りのものです。 ぽけっとしすてむさん、誠にありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ