http://q.hatena.ne.jp/1449280991
上記質問のa-kuma3さんの回答を使わせて頂いているのですが、以下のような改造は出来ないでしょうか。
1)親カテゴリを表示させない
2)子カテゴリの【】内文字列を表示させない
自分で色々と試したのですが、上手くいかず質問させて頂きます。
宜しくお願い致します。
こちらでいかがでしょうか。
※以下のコードは 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 = "▶"; 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 = "▶"; 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>
ありがとうございます。
2017/06/01 23:06:26希望通りのものです。
ぽけっとしすてむさん、誠にありがとうございました。