Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Как выбрать все html-элементы, имеющие namespace?

#javascript #html #css #dom

                    
Следующий код



function go() {
  console.log(document.querySelectorAll("*|*"));
}
Some div
Smth from a Smth from b

Just a p

находит все элементы на странице: 0: html 1: head 2: style 3: body 4: div 5: a:div 6: b:any 7: p 8: button 9: script length: 10 А как найти только те, у которых задан нестандартный namespace? 0: a:div 1: b:any length: 2


Ответы

Ответ 1



Могу на JQuery элементы с заранее известными нэймспейсами нати. function go() { $('.result').append($('a\\:div')); }
Some div
Smth from a Smth from b

Just a p

Можно и без JQuery: function go() { var elements = document.getElementsByTagNameNS('*','*'); found = []; [].forEach.call(elements, function(element) { if (element.nodeName.indexOf(':') > 0) { found.push(element); } }); found.forEach(function(element) { document.getElementById("result").appendChild(element); }); } В сниппете код почему-то не работает, а при загрузке страницы из файла в Google Chrome — работает. Почему вы не используете JQuery?

Ответ 2



Сделал так: function go() { console.log(Array.prototype.filter.call(document.querySelectorAll("*|*"), function(el) { return ~el.tagName.indexOf(":"); })); }
Some div
Smth from a Smth from b

Just a p



Комментариев нет:

Отправить комментарий