Я пытаюсь выбрать все элементы, у data-go-to
которых есть непустой атрибут.
Я пробовал, $('[data-go-to!=""]')
но, как ни странно, кажется, что если я это сделаю, он выбирает каждый элемент на странице.
Я пытаюсь выбрать все элементы, у 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]')
работает.Так же в качестве дополнительной ссылки и актуального
(май'14)(авг'15)(сен'16)(апр'17)(мар'18)(мар'19)( май'20 ) ...Ответ, который работает с:
jQuery("[href]");
jQuery("[href!='']");
jQuery("[href!=''][href]");
PS : возможны другие комбинации ...
Посмотрите этот тест в jsFiddle для примеров:
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 testjQuery v3.2.1 ->
jsFiddle online testjQuery v3.3.1 ->
jsFiddle online testjQuery v3.4.1 ->
jsFiddle online test Последняя версия jQuery доступна в jsFiddle 28 мая 2020 г.jQuery Edge ->
jsFiddle online test Версия jQuery edge (используйте с осторожностью)Или здесь, в SO с этим фрагментом кода .
* Фрагмент работает под управлением jQuery v2.1.1
Показать фрагмент кода
jQuery('div.test_1 > a[href]').addClass('match'); jQuery('div.test_2 > a[href!=""]').addClass('match'); jQuery('div.test_3 > a[href!=""][href]').addClass('match');
div,a { display: block; color: #333; margin: 5px; padding: 5px; border: 1px solid #333; } h4 { margin: 0; } a { width: 200px; background: #ccc; border-radius: 2px; text-decoration: none; } a.match { background-color: #16BB2A; position: relative; } a.match:after { content: 'Match!'; position: absolute; left: 105%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="test_1"> <h4>Test 1: jQuery('a[href]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div> <div class="test_2"> <h4>Test 2: jQuery('a[href!=""]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div> <div class="test_3"> <h4>Test 3: jQuery('a[href!=""][href]')</h4> <a href="test">href: test</a> <a href="#">href: #</a> <a href="">href: empty</a> <a>href: not present</a> </div>
источник
$(':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 или нет:
$('[data-attributename]')
Пример JS Fiddle
источник
Я не уверен насчет простого селектора, но вы могли бы использовать
filter()
:$('[data-go-to]').filter( function(){ return ($(this).attr('data-go-to').length > 0); });
Демо JS Fiddle .
Ссылки:
filter()
.источник
Согласно документации это должно сделать это
:not([attr="value"])
ДЕМО
Надеюсь это поможет
источник
$('[data-go-to]:not([data-go-to=""])')
JSBIN
источник
$('[data-go-to]').filter(function() { return $(this).data('go-to')!=""; });
Использование
:not
,.not()
и:empty
т. Д. Будет проверять только пустой ли элемент, а не атрибут данных. Для этого вам нужно будет выполнить фильтрацию по значению атрибутов данных.FIDDLE
источник
Это работает для меня
$('[attributename]').filter('[attributename!=""]')
источник
Попробуй это :
$('[data-go-to:not(:empty)]')
источник
"Syntax error, unrecognized expression: [data-go-to:not(:empty)]"
Это работает для меня:
$('.data .title td[data-field!=""]')
источник