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 :

.prop () vs .attr ()

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

questionAnswers(3)

yourAnswerToTheQuestion