2016-04-05 124 views
0

我想要所有元素的ID,它們的屬性分別爲data-testmyClass獲取具有給定屬性和類的元素的ID

所以在這種情況下,這將是唯一elem3,因爲它是符合兩個條件的唯一元素:

<input type="text" data-test="someValue" id="elem1" /> 
<input type="text" class="myClass" id="elem2" /> 
<input type="text" class="myClass" data-test="someValue" id="elem3" /> 

隨着

$('input[data-test], .myClass').attr("id") 

我只得到elem1,而不是elem3

Here is a fiddle

+3

'$( '輸入[數據檢驗] .myClass')ATTR( 「ID」)' –

+1

HTTPS: //jsfiddle.net/aoLfe04a/6/ –

+1

@KartikeyaKhosla簡單&清醒的解決方案,完全滿足要求+1 – JagsSparrow

回答

0

你的選擇應該是這樣的:

$('input[data-test][class=myClass]').attr("id")

Fiddle for Single

要得到你需要使用$.each這樣所有元素的列表:

$.each($('input[data-test][class=myClass]'), function() { 
    console.log(this.id); 
}); 

Fiddle for all Elements

參考:Multiple Attribute Selector

+0

但是我怎麼能得到他們所有的人,不僅是第一個? – user1170330

+0

@ user1170330您可以使用'$ .each'獲取所有元素 – Apb

+0

也可以接受:'$(「input.myClass [data-test]」)。attr(「id」)' 或者,因爲您沒有你可以使用:'$(「。myClass [data-test]」)。attr(「id」)' –

0

您可以使用

$('input.myClass[data-test]').map(function(){ 
    return this.id 
}); 

會給IDS

的陣列
1

要獲得所有元素使用$.each。這將遍歷所有DOM對象

$.each($('input[data-test].myClass'), function() { 
    alert(this.id); 
}); 

https://jsfiddle.net/aoLfe04a/8/

+0

這給了我所有的元素。 – user1170330

+0

更新後檢查 –

0

解決方案

如果你的目標是要找到既有數據測試屬性和MyClass類的單個元素,你應該改變從這個腳本...

$('input[data-test], .myClass').attr("id") 

...到這...

$('input[data-test].myClass').attr("id") 

說明

給予兩個條件分隔符通過逗號編輯意味着您將獲得滿足這些條件的任何的所有內容。在這種情況下,這是所有三個要素。你只看到elem1的原因是因爲在數組上調用.attr("id")只返回第一個元素的id。

將輸入和類選擇器一起按我的稍微修改過的代碼行一起返回,只返回滿足這兩個條件的元素。

附加

如果有可能,你將返回多個元素,你想他們的ID數組,你將不得不拯救$('input[data-test], .myClass').attr("id")到一個變量,檢查它的長度,然後通過迭代它是否有多個命中。因爲我不相信這是你的問題,所以我不打算進一步闡述(但我相信其他受訪者已經擁有)。

參考資料

jQuery Selectors Documentation

0

您可以使用jQuery的循環是這樣的。

$.each($('input[data-test], .myClass'), function() { 
    console.log(this.id); 
    alert(this.id); 
}); 
1

jQuery attr()返回第一個元素的屬性值。

獲取第一元素的屬性的值的集合中的 匹配元素或設置每個匹配 元件的一個或多個屬性。

使用。每枚舉IDS:

$('input[data-test], .myClass') 
.each(function (i, el) { console.log($(el).attr("id"))}) 

JsFiddle

相關問題