Я пытаюсь выбрать все элементы, у 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 ) ...
Ответ, который работает с:
Пустые строки:
Если должно существовать и иметь какое-либо значение (или вообще не иметь )
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 или нет:
$('[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)]"