Próbuję wybrać wszystkie elementy, które mają data-go-to
atrybut, który nie jest pusty.
Próbowałem, $('[data-go-to!=""]')
ale, co dziwne, wydaje się, że wybiera każdy element na stronie, jeśli to zrobię.
Odpowiedzi:
próbować
$(':not([data-go-to=""])')
AKTUALIZACJA:
Aby nikogo nie sprowadzić na manowce, ta odpowiedź będzie działać w starszych wersjach jQuery, ale nie jest przyszłościowa. Ponieważ odpowiedzi @gmo i @ siva wydają się działać z późniejszymi wersjami, odkładam (i zachęcam cię do głosowania) ich odpowiedzi ... i oczywiście mam nadzieję, że masz fantastyczny dzień.
$('element:not([attribute=])'); // gets all of <element attribute="">
lub$(':not([attribute=])'); // gets all of <* attribute="">
$('[data-go-to!=""]:[data-go-to]')
tak.
Jako dalsze odniesienie i aktualne (maj'14) (sierpień'15) (wrz'16) (kwi'17) (mar'18) (mar'19) ( maj'20 ) ...
Odpowiedź, która działa z:
Puste ciągi:
Jeśli musi istnieć i może mieć jakąkolwiek wartość (lub wcale)
attr
jQuery("[href]");
Brakujące atrybuty:
Jeśli mogłoby istnieć, a jeśli istnieje, musi mieć jakąś wartość
attr
jQuery("[href!='']");
Lub obydwa:
Jeśli musi istnieć i musi mieć jakąś wartość ...
attr
jQuery("[href!=''][href]");
PS : więcej kombinacji jest możliwych ...
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 Ostatnia wersja jQuery dostępna w jsFiddle w maju 28'20 jQuery Edge ->
jsFiddle online test Wersja jQuery Edge (używaj ostrożnie) * Snippet korzysta z jQuery v2.1.1
$(':not([data-go-to=""])')
już nie działa
$('[data-go-to!=""]:[data-go-to]').each(function() {
// Do Your Stuff
});
Unrecognized Expression
błąd.
Zawiera atrybut „data-attributeame”, a jego wartość nie jest pusta:
$('[data-attributename]:not([data-attributename=""])')
Czy atrybut „nazwa-atrybutu danych” jest pusty lub nie:
$('[data-attributename]')
Nie jestem pewien co do prostego selektora, ale możesz użyć filter()
:
$('[data-go-to]').filter(
function(){
return ($(this).attr('data-go-to').length > 0);
});
Bibliografia:
Spróbuj tego :
$('[data-go-to:not(:empty)]')
"Syntax error, unrecognized expression: [data-go-to:not(:empty)]"