Давать следующий DIV:jQuery Как найти элемент на основе значения атрибута данных, заданного как объект?
<div data-options='{"name":"John", "age":"30"}'></div>
Как выбрать Div элемент с возрастом равен 30?
Я попытался с помощью метода .filter():
$("div").filter(function(index) {
return $(this).data('options').age === "30";
//or
//return $(this).data('options:age') === "30";
});
но ничего не дал.
Также попробовал :data() Selector для JQuery UI: $ («: данные (опции) .age») , но он может выбрать только элементы по параметрам данных, а не от значений данных (я, кажется, работает только на элементы с одним простым атрибутом).
Наконец, я попытался определение данных по JQuery вместо HTML:
$("div").data("options", { name: "John", age: 30 });
затем пытается все вышеперечисленное еще раз, но ничего не дало.
Любые подсказки о том, как решить эту проблему?
Ваш первый пример является правильный метод и работает отлично: https://jsfiddle.net/pdg4by0t/. Можете ли вы расширить свой код, поскольку у вас может быть ошибка в другом месте в логике –
@RoryMcCrossan, Спасибо. Я понял, что пытался получить возраст как число, пока он был установлен как строка. Я думал, что нет никакой разницы. – Amr
Для справки, если вы использовали '==', тогда он работал бы, когда он будет принудительно использовать типы. '===' сравнивает, не затрагивая типы –