2012-09-05 102 views
0

我想獲得具有類當前,或者其父類LI具有類當前的錨的ID屬性。如何使用jQuery獲取具有特定類的元素的ID屬性

我試試這個代碼:

var terms = ''; 
    $('.product-tax li').each(function(){ 
     if ($(this).hasClass('current')) { 
      terms += $(this).children('a').attr('id') + ':'; 
     } else if ($(this).children('a').hasClass('current')) { 
      terms += $(this).children('a').attr('id') + ':'; 
     } 
    }); 

但它不工作,它給了意想不到的結果。我想抓住錨內的ID,對於LI或anchor的類「current」。

基本上我使用每個,因爲有多個.product稅和用戶做出選擇,但類「當前」可以添加到李,或錨,這就是爲什麼我需要檢查。此代碼不起作用。

有什麼建議嗎?

HTML:

<div class="product-tax product-color"> 
    <h3>Choose color</h3> 
    <ul> 
     <li><a href="#" id="color-pink" style="background: Pink;border: 1px solid Pink;"></a></li> 
    </ul> 
</div> 


<div class="product-tax product-size"> 
    <h3>Choose size</h3> 
    <ul> 
     <li><a href="#" id="size-2s">2(s)</a></li> 
     <li><a href="#" id="size-3m">3(m)</a></li> 
     <li><a href="#" id="size-4l">4(l)</a></li> 
     <li><a href="#" id="size-5xl">5(xl)</a></li> 
     <li><a href="#" id="size-6xxl">6(xxl)</a></li> 
    </ul> 
</div> 
+2

這將有助於看到一個HTML結構的例子cture看起來像在jsfiddle.net上的片段 –

+0

一次只會有一個'.current'元素,還是會有多個? – jackwanders

+0

multiple .current(在LI上或在LI裏面) –

回答

2

您可以選擇LI元素的所有錨孩子,所有的孩子與當前類是這樣的:

var terms = ""; 
$(".product-tax li.current > a, .product-tax li > a.current").each(function(){ 
    terms = terms + $(this).attr("id") + ":" 
}); 
+0

謝謝你 –

1

試試這個

// get anchor with class current and anchor with parent li with class current 
$('a.current,li.current > a').each(function(){ 
     alert(this.id); 
}); 
0
var terms = ''; 
    $('.product-tax li').each(function(){ 
     if ($(this).hasClass('current')) { 
     terms += $(this).attr('id') + ':'; 
     } 
     var $anchors = $(this).children("a"); 
     $anchors.each(function(){ 
     if ($(this).hasClass('current')) { 
      terms += $(this).attr('id') + ':'; 
     } 
     }); 
    }); 
相關問題