[英]How do I get the parent li everytime I click one of the child li in jQuery?
我在WordPress中有一個具有以下結構的列表
<ul class="woof_list woof_list_radio">
<li class="woof_term_224 woof_childs_list_li">
<label class="woof_radio_label " for="woof_unselect">Parent 1</label>
<ul class="woof_childs_list woof_childs_list_224">
<li class="woof_childs_list_li">
<label class="woof_radio_label" for="woof_unselect">Sub Category 1</label>
<ul class="woof_childs_list woof_childs_list_444">
<li>
<label class="woof_radio_label" for="woof_unselect">Product 1</label>
</li>
<li>
<label class="woof_radio_label" for="woof_unselect">Product 2</label>
</li>
</ul>
</li>
</ul>
</li>
<li class="woof_term_225 woof_childs_list_li">
<label class="woof_radio_label " for="woof_unselect">Parent 2</label>
<ul class="woof_childs_list woof_childs_list_225">
<li class="woof_childs_list_li">
<label class="woof_radio_label" for="woof_unselect">Sub Category 2</label>
<ul class="woof_childs_list woof_childs_list_555">
<li>
<label class="woof_radio_label" for="woof_unselect">Product 3</label>
</li>
<li>
<label class="woof_radio_label" for="woof_unselect">Product 4</label>
</li>
</ul>
</li>
</ul>
</li>
</ul>
父1子類別1
如果我點擊它的任何一個孩子,我想找出父<li>
。
例如,如果我單擊父1或子類別1或產品1或>產品2,我想找到父<li class="woof_term_224 woof_childs_list_li">
對於<li class="woof_term_225 woof_childs_list_li">
應該如此
我當前的代碼看起來像這樣,但它不起作用:
j('.woof_list_radio > li > .woof_radio_label').click(function(e) { e.preventDefault(); j(this).closest('ul').closest('li').addClass('current') });
任何想法都值得贊賞。
試試這個:你只需要為closest
的父li添加類選擇器,它將選擇正確的li父級。 此外,添加單擊事件處理程序的所有woof_radio_label
內woof_childs_list_li
j('.woof_childs_list_li .woof_radio_label').click(function(e) {
e.preventDefault();
j(this).closest('ul').closest('li.woof_childs_list_li').addClass('current')
});
你可以這樣做: $(this).closest('li[class^=woof_term_]').addClass('current');
li[class^=woof_term_]
將查找具有以woof_term_
開頭的類的li
演示
$('.woof_list_radio li .woof_radio_label').click(function(e) { e.preventDefault(); $(this).closest('li[class^=woof_term_]').addClass('current'); });
.current{ color:blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="woof_list woof_list_radio"> <li class="woof_term_224 woof_childs_list_li"> <label class="woof_radio_label " for="woof_unselect">Parent 1</label> <ul class="woof_childs_list woof_childs_list_224"> <li class="woof_childs_list_li"> <label class="woof_radio_label" for="woof_unselect">Sub Category 1</label> <ul class="woof_childs_list woof_childs_list_444"> <li> <label class="woof_radio_label" for="woof_unselect">Product 1</label> </li> <li> <label class="woof_radio_label" for="woof_unselect">Product 2</label> </li> </ul> </li> </ul> </li> <li class="woof_term_225 woof_childs_list_li"> <label class="woof_radio_label " for="woof_unselect">Parent 2</label> <ul class="woof_childs_list woof_childs_list_225"> <li class="woof_childs_list_li"> <label class="woof_radio_label" for="woof_unselect">Sub Category 2</label> <ul class="woof_childs_list woof_childs_list_555"> <li> <label class="woof_radio_label" for="woof_unselect">Product 3</label> </li> <li> <label class="woof_radio_label" for="woof_unselect">Product 4</label> </li> </ul> </li> </ul> </li> </ul>
您可以使用通配符jquery選擇器向上移動DOM以找到以woof_term_
開頭的第一個li
:
$('.woof_list_radio .woof_radio_label').click(function(e) { e.preventDefault(); $(this).closest("li[class^='woof_term_']").addClass('current') });
.current{ background-color: lightblue; } label{ cursor: pointer; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <ul class="woof_list woof_list_radio"> <li class="woof_term_224 woof_childs_list_li"> <label class="woof_radio_label " for="woof_unselect">Parent 1</label> <ul class="woof_childs_list woof_childs_list_224"> <li class="woof_childs_list_li"> <label class="woof_radio_label" for="woof_unselect">Sub Category 1</label> <ul class="woof_childs_list woof_childs_list_444"> <li> <label class="woof_radio_label" for="woof_unselect">Product 1</label> </li> <li> <label class="woof_radio_label" for="woof_unselect">Product 2</label> </li> </ul> </li> </ul> </li> <li class="woof_term_225 woof_childs_list_li"> <label class="woof_radio_label " for="woof_unselect">Parent 2</label> <ul class="woof_childs_list woof_childs_list_225"> <li class="woof_childs_list_li"> <label class="woof_radio_label" for="woof_unselect">Sub Category 2</label> <ul class="woof_childs_list woof_childs_list_555"> <li> <label class="woof_radio_label" for="woof_unselect">Product 3</label> </li> <li> <label class="woof_radio_label" for="woof_unselect">Product 4</label> </li> </ul> </li> </ul> </li> </ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.