Я намагаюся виділити всі елементи, які мають data-go-to
атрибут, який не є порожнім.
Я намагався, $('[data-go-to!=""]')
але як не дивно, здається, я вибираю кожен окремий елемент сторінки, якщо я це роблю.
Відповіді:
спробуй
$(':not([data-go-to=""])')
ОНОВЛЕННЯ:
Щоб нікого не збити, ця відповідь буде працювати у старих версіях jQuery, але не є надійною для майбутнього. Оскільки відповіді @gmo та @ siva, схоже, працюють із пізнішими версіями, я відкладаю (і закликаю вас проголосувати) їх відповіді .... і звичайно сподіваюся, у вас є фантастичний день.
$('element:not([attribute=])'); // gets all of <element attribute="">
або$(':not([attribute=])'); // gets all of <* attribute="">
$('[data-go-to!=""]:[data-go-to]')
працює.
Подібно до того , як подальше використання, і уточнений (may'14) (aug'15) (sep'16) (apr'17) (mar'18) (mar'19) ( may'20 ) ...
Відповідь, яка працює з:
Порожні рядки:
Якщо повинен існувати і міг мати якесь значення (або взагалі не має значення )
attr
jQuery("[href]");
Відсутні атрибути:
Якщо міг існувати і якщо існує, повинен мати якесь значення
attr
jQuery("[href!='']");
Або обидва:
Якщо має існувати і має мати якесь значення ...
attr
jQuery("[href!=''][href]");
PS : можливо більше комбінацій ...
jQuery v1.11.0 ->
jsFiddle online testjQuery v2.1.0 ->
jsFiddle online testjQuery v2.1.3 ->
jsFiddle online testjQuery v3.0.0-alpha1 ->
jsFiddle online testjQuery v3.1.1 Slim ->
jsFiddle online test jQuery v3.2.1 ->
jsFiddle online test jQuery v3.3.1 ->
jsFiddle online test jQuery v3.4.1 ->
jsFiddle online test Остання версія jQuery доступна у jsFiddle 28 травня 2020 року jQuery Edge ->
jsFiddle online test Версія jQuery edge (використовуйте з обережністю) * Фрагмент запущений jQuery v2.1.1
$(':not([data-go-to=""])')
вже не працює
$('[data-go-to!=""]:[data-go-to]').each(function() {
// Do Your Stuff
});
Unrecognized Expression
помилку.
Має 'data-attributename' і його значення не є порожнім:
$('[data-attributename]:not([data-attributename=""])')
Має "атрибут-ім'я даних" порожній чи ні:
$('[data-attributename]')
Я не впевнений у простому селекторі, але ви можете використовувати filter()
:
$('[data-go-to]').filter(
function(){
return ($(this).attr('data-go-to').length > 0);
});
Список літератури:
Спробуйте це :
$('[data-go-to:not(:empty)]')
"Syntax error, unrecognized expression: [data-go-to:not(:empty)]"