2010-12-13 48 views
2

我想定位一個有兩個類名設置的元素:試圖從一個在jQuery中有兩個元素獲得一個類

ex。

<li style="display:none;" class="productList product-1"> 
    <p class="removeIcon"><img src="images/remove-icon.jpg" align="Remove Product" /></p> 
    <span class="companyName">Company 1 goes here and here is a test for two lines</span> 
</li> 

當我試圖讓班上李jQuery中:

var parent = $(this).parent().get(0).className(); 

返回「productList的產品1」我希望能夠返回或減少輸出只是: 「產品 - 1」。我知道這可能很容易,但我現在不知道一種方式。

我需要它是在類中定義過的順序。另一個功能是使用「productList的」一部分......

我將確定只移除第一部分,如果有一種方法可以做到這一點?

回答

3
this.parentNode.className.split(' ')[1]; 

或使用jQuery:

$(this).parent().attr('class').split(' ')[1]; 

但我更喜歡第一。

+1

謝謝你的訣竅 – estern 2010-12-13 18:56:04

+0

@estern:不客氣。 :o) – user113716 2010-12-13 18:57:19

0
var parent = $(this).parent().attr('class').split(' ')[1]; 

這應該爲你做這項工作!

+1

是的,工作正確謝謝 – estern 2010-12-13 18:56:21

1

我希望指向上有

if($(this).hasClass('firstOne') && $(this).hasClass('secondOne')) { 
    ... 
} 
0

不是一個答案設置你的問題,本身 兩級命名一個元素,但更好的方法:.data()

儘管使用這種類型的數據存儲類很常見,但它們並不是最優的,因爲您必須將數據解析出來,這在很大程度上是因爲您已經看到了。但是,最近的jQuery版本支持HTML5風格的,它可以更好地完成相同的工作。 (和工作與HTML4和XHTML,雖然你會得到驗證錯誤。)

要使用它們,改變你的HTML類似:

<li style="display:none;" class="productList" data-product="1"> 
    <p class="removeIcon"><img src="images/remove-icon.jpg" align="Remove Product" /></p> 
    <span class="companyName">Company 1 goes here and here is a test for two lines</span> 
</li> 

在jQuery中,你就可以使用.data()

var parent = $(this).parent().get(0).data("product"); // parent === 1 

(請注意,在你的HTML的"1"被自動地從一個字符串轉換爲數字。)

相關問題