
前提・実現したいこと
wordpressで管理しているページで、Javascriptを用いて、ulリストのli要素にクリック時にclassをaddしたり、li要素の子要素のa要素からhrefを取得したりなどの処理を施したいです。
使用しているテーマが複雑で、headerやhooterがどこで管理されているか特定するのが困難なため、このページではjQueryが使えず、プレーンなjsで書いています。
また、テーマのカテゴリを取得するコードからhtml要素が出力されているため、li要素のタグないにonclick="function"などは追加できません。
一日試行錯誤しましたが、解決できなかったため、お力をお借りしたいです。
どうかよろしく願いいたします。
発生している問題・エラーメッセージ
findLi[i].onclick = click(findLi[i]);
→この部分がループされているようで、初回ページ読み込み時にalertが3回続けて出ます。
該当のソースコード
js
1window.onload = function() { 2 var findUl = document.getElementsByClassName('products'); 3 var findLi = findUl[0].children; 4 for (var i = 0; i < findLi.length; i++){ 5 findLi[i].getElementsByTagName('a')[0].href = "javascript:void(0)"; 6 findLi[i].onclick = click(findLi[i]); 7 } 8} 9var click = function(li) { 10 alert(li); 11}
html
1<ul class="products"> 2 <li> 3 <a href="javascript:void(0)"> 4 <img class="lazy lazy-loaded" src=""> 5 <h2 class="woocommerce-loop-category__title"> 6 hoge <mark class="count">(135)</mark> 7 </h2> 8 </a> 9 </li> 10 <li> 11 <a href="javascript:void(0)"> 12 <img class="lazy lazy-loaded" src=""> 13 <h2 class="woocommerce-loop-category__title"> 14 hoge <mark class="count">(135)</mark> 15 </h2> 16 </a> 17 </li> 18 <li> 19 <a href="javascript:void(0)"> 20 <img class="lazy lazy-loaded" src=""> 21 <h2 class="woocommerce-loop-category__title"> 22 hoge <mark class="count">(135)</mark> 23 </h2> 24 </a> 25 </li> 26</ul> 27


回答1件
あなたの回答
tips
プレビュー