2013-11-20 65 views
17

說我有以下數據屬性的幾個要素:jQuery的獲取匹配數據的所有元素屬性名稱

<data-my-key="blah"> 

,我想一個事件附加到所有這些,怎麼能這樣做?

我已經嘗試了一些東西,但不能得到它的工作。

我最新的嘗試是:

$('data-my-key').click(... 

$(document).find('data-my-key').click(... 
+0

關於如何使用選擇器的注意事項。只需使用名稱就可以選擇元素。意思是,你只用一個字符串$('div')。click來選擇所有的DIV元素。 $('#div')會選擇id ='div'的元素,$('。div')會選擇class ='div'的元素。當然,給一個元素一個ID或者一個div類是很奇怪的,但這只是一個選擇語法的例子。 –

回答

35

您可以使用屬性選擇:但是

$('[data-my-key]').click(... 

。注意,jQuery的商店DOM後負荷增加data屬性在它的內部緩存中不是元素的屬性,所以選擇器w不應該爲那些工作。在這種情況下,你將需要使用filter

$(document).children().filter(function() { 
    return $(this).data('my-key'); 
}).click(...; 
+3

該死! - 我很親密:) –

相關問題