@hadaev_ivan

CSS: можно ли найти элемент по значению атрибута, без имени самого атрибута?

document.body.querySelectorAll('[src*="blabla"], [src*="bebebe"]'),

Использую cssquery, мне необходимо найти все элементы в значениях атрибутов которых есть подстрока "blabla", код который привел выше ищет только в атрибутах "src", конечно можно перечислить в запросе все атрибуты, и будет что-то вроде:
document.body.querySelectorAll('[src*="blabla"], [src*="bebebe"], [name*="blabla"], [value*="blabla"]........'),

Но есть ли способ проще?
  • Вопрос задан
  • 2965 просмотров
Пригласить эксперта
Ответы на вопрос 2
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Странная задача =)) Но тем не менее, кто то уже делал такое: Перебор атрибутов.

$(xml).find ('товар') .each(function() {
$.each(this.attributes, функция(я, attrib){
var name = attrib.name;
var-value = attrib.value;
// do your magic :-)
});
});
Ответ написан
rOOse
@rOOse
Frontend developer
Напрямую я так понял нельзя, а так:

function getElementsByAttrValue(value) {
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*'); 
  for(var i = 0, n = allElements.length; i < n; i++) {
    for(var j = 0, m = allElements[i].attributes.length; j < m; j++) {
      if(allElements[i].attributes[j].value == value) matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

я думаю смысл потеряется?
З.Ы. Я не гуру в javascript, сорри за код=)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы