Как отфильтровать массив объектов на основе значения атрибута данных? - PullRequest
0 голосов
/ 03 октября 2018

Если я имею дело с возвращенным массивом изображений, как отфильтровать только те изображения, которые содержат определенное значение атрибута данных?

Например ...

let $exampleImages = $("#example img");

Теперь каждое из примеров изображений возвращает что-то вроде

$exampleImages[5] => <img ... data-targetattribute="12345" ... >

Как можно отфильтровать только те изображения, которые содержат data-targetattribute="12345"?

Я думал, что следующее сработает, но это не так ...

$exampleImages.filter('[data-targetattribute="12345"]');

Есть идеи?Есть ли что-то в методе фильтра или в отношении коллекции объектов, которую я не понимаю правильно?

Я тоже не женат на jQuery, так что если это что-то, что лучше подойдет для необработанногоJavascript подход, я все уши!

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Чтобы отфильтровать элементы с заданным значением атрибута данных из объекта jQuery, метод .filter([selector]) даст то, что вы хотите.

Вот пример кода, демонстрирующего это:

var divs = $('div');

divs = divs.filter('[data-targetattribute="12345"]')

divs.css('background-color', 'red');

JSFiddle

Помните, что .filter возвращает новый объект.Проблема с вашим кодом может заключаться в том, что вы пытаетесь сослаться на исходную переменную, которая не была изменена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...