selektor właściwości jQuery 1.9.1
tło
Od jQuery 1.9 the.attr(..)
metoda nie zwraca już wartości właściwości, zamiast tego musimy teraz użyć.prop(..)
. Niestety dotyczy to również atrybutów określonych przez selektor atrybutów, tj.$("input[value=]")
Widziećhttp://jquery.com/upgrade-guide/1.9/#attr-versus-prop-
i dobra dyskusja na temat różnic między nimi.attr
i.prop
:
Moja sytuacja
Obecnie używam selektorów takich jak$("input[value=]")
i$("select[value=]")
aby wybrać elementy wejściowe, które nie mają ustawionej wartości. Jednak to już nie działa z jQuery 1.9, teraz robię coś takiego:
var hasValue = function () { return !!($(this).val().length); };
var hasNoValue = function () { return !($(this).val().length); };
$("input").filter(hasValue);
$("select").filter(hasValue);
Moje rzeczywiste selektory są trochę większe, sprawdzając wiele elementów z wartościami lub bez wartości, więc teraz muszę podzielić mój 1 selektor na wiele selektorów za pomocą wywołań metody .filter (..) pomiędzy.
Pytanie
Czy istnieje odpowiednik$("[value=]")
, $("[value!=]")
, $("[value='abc']")
który używa właściwości zamiast atrybutu? A jeśli nie, czy jest czystszy sposób niż użycie.filter(hasValue)
i.filter(hasNoValue)
metody?
Dzięki