2012-06-15 114 views
2

我想選擇所有具有在其上定義的accesskey的元素。Jquery選擇所有具有定義的accesskey的元素

我知道我可以這樣做:$('[accesskey]'),但是這給了我很多輸入,hrefs等等,在頁面上(他們大多數都有一個空的accesskey)。

什麼是隻選擇accesskey實際上有一個值的元素的方式?

編輯:我找到的空accesskeys的原因爲好,被一些老禁用/恢復accesskeys的javascript在多模態對話框功能..通常你會不會用空accesskeys得到這麼多元素造成

+0

您可以檢查這個帖子... http://stackoverflow.com/questions/1097522/check-existence-of-an-attribute-with-jquery – Subhajit

+0

@Subhajit:那個帖子是關於一個企業的所有腦幹屬性。我的問題是關於一個應該有價值的屬性,而不僅僅是它的存在。 –

回答

2

了一個選擇:

$('[accesskey][accesskey!=""]').foo 

它是如何工作:

// Has the accesskey attribute defined. 
[accesskey] 

// Doesn't have an empty value for the accesskey attribute. 
[accesskey!=""] 

一起它選擇每個具有accesskey屬性的元素,它不是空的。

+0

感謝您的寶貴建議 – thecodeparadox

+0

謝謝,這個作品 –

+0

@ErikDekker。沒問題,我很樂意提供幫助。 – gdoron

1

你可以做到這一點

$('[accesskey]').filter(function(){ 
    return $(this).prop('accessKey'); 
}); 

.filter()或像其他已經說過,你可以使用attribute-not-equal-selector

Working sample

+0

@thecodeparadox,謝謝。 'attr'正在解決這個問題。我認爲'attr'和'prop'是可以互換的。你能糾正我嗎? –

+0

@Joy。閱讀'prop'的文檔。 – gdoron

+0

@gdoron,謝謝,先生,我會很快做到這一點。 –

0

可以使用的和額外的循環

$("[accesskey]").each(function() { 
    if($(this)).attr('accesskey').length > 0) { 
     // do it 
    } 
} 

我希望它會幫助你

相關問題