2012-06-15 3 views
2

Я хочу выбрать все элементы, у которых есть определяемая на них клавиша доступа.Jquery выберите все элементы, у которых есть ключ доступа

Я знаю, что могу это сделать: $('[accesskey]'), но это дает мне много входов, hrefs и т. Д. На странице (у большинства из них есть пустая клавиша доступа).

Каким образом можно выбрать только те элементы, в которых ключ доступа действительно имеет значение?

Edit: я нашел причину пустой, а также Конфигурацию доступности, был вызван некоторой старым отключение/восстановления функции Javascript Конфигурации доступностью на несколько модальных диалогах .. как правило, вы не получите, что много элементов с пустой

Конфигурации доступностью
+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 
    } 
} 

я надеюсь, что это поможет вам