2013-04-08 106 views
-2

考慮到我有一個類似的文件:的jQuery - 獲得具有相同的數據屬性的元素的數組值

<div> 
    <div data-myAttr = "foo"></div> 
    <div data-myAttr = "bar"></div> 
</div> 
<div> 
    <div data-myAttr = "foo"></div> 
    <div data-myAttr = "bar"></div> 
</div> 

如何,我可以得到包含數據myAttr以foo的和酒吧的分組的所有元素?

編輯:這是一個更理論的問題。我沒有嘗試失敗的代碼,但正在爲已存在的代碼探索更優雅的選項。

順便說一句,謝謝你的-1!?

編輯:有人可以標記爲重複?在此找到適用的答案:Group and count HTML elements by data attribute in jQuery

+3

請發佈您嘗試過的代碼無效。 – 2013-04-08 15:39:54

+0

爲了探索更加優雅的選項以適應已經運行的代碼,請考慮http://codereview.stackoverflow.com,並且您仍然希望發佈代碼。 – 2013-04-08 15:48:25

回答

0

您可以使用attribute selector並將兩個屬性選擇器與comma結合;

Live Demo

$('[data-myAttr=foo], [data-myAttr=bar]') 

可以使用each()

$('[data-myAttr=foo], [data-myAttr=bar]').each(function(){ 
    alert($(this).text()); 
}); 
+0

感謝您的答案,但有沒有可能做到這一點,而不必定義data-myAttr值? – 2013-04-08 15:48:09

+0

是的,你可以做到這一點,檢查它在這裏,http://jsfiddle.net/ZxQzW/2/ – Adil 2013-04-08 15:50:21

+0

對不起,我的意思是不必將其定義爲選擇器的一部分。不過謝謝你! – 2013-04-08 16:43:00

2

確定這是通過迭代元素我第一次回答放在這裏,所以不要法官嚴厲......在我我的數組中也有重複的情況。而我纔剛剛開始完全瞭解這一切的作品,但這裏有雲:

elements = $('div[data-myAttr]').map(function() { 
    return $(this).attr('data-myAttr'); 
}); 

然後通過名稱來運行基本JS循環搶用正確的ATTR所有元素。

相關問題