Есть ли способ сопоставить имя элемента с подстановочным знаком, используя querySelector
или querySelectorAll
? Я вижу поддержку подстановочных знаков в запросах атрибутов, но не для самих элементов.
XML-документ, который я пытаюсь проанализировать, в основном представляет собой плоский список свойств, и мне нужно найти элементы, в именах которых есть определенные строки.
Я понимаю, что XML-документ, вероятно, нуждается в реструктуризации, если мне это нужно, но этого просто не произойдет.
Приемлемо любое решение, за исключением возврата к явно устаревшему XPath (IE9 отказался от него).
javascript
dom
domparser
selectors-api
Эрик Андерссон
источник
источник
Ответы:
[id^='someId']
будет соответствовать всем идентификаторам, начинающимся сsomeId
.[id$='someId']
будет соответствовать всем идентификаторам, заканчивающимся наsomeId
.[id*='someId']
будет соответствовать всем идентификаторам, содержащимsomeId
.Если вы ищете
name
атрибут, просто замените егоid
наname
.Если вы говорите о имени тега элемента, я не верю, что есть способ использовать
querySelector
источник
document.querySelectorAll("div[id$='foo']")
IE8 имеет только частичную поддержку QSA, я думаю, они поддерживают только селекторы CSS2.1, поэтому эти селекторы не будут работать в IE8, но IE9 + будет работать.Я возился / размышлял о однострочниках, связанных с querySelector (), и оказался здесь, и у меня есть возможный ответ на вопрос OP, используя имена тегов и querySelector (), с кредитами @JaredMcAteer за ответ на МОЙ вопрос, также как и RegEx совпадает с querySelector () в ванильном Javascript
Надеемся, что следующее будет полезно и соответствует потребностям OP или всем остальным:
Затем мы можем, например, получить материал src и т. Д.
источник
Задайте tagName как явный атрибут:
Мне самому это было нужно для XML-документа с вложенными тегами, заканчивающимися на
_Sequence
. См. Ответ JaredMcAteer для более подробной информации.Я не сказал, что это будет красиво :) PS: Я бы рекомендовал использовать
tag_name
over tagName, чтобы вы не столкнулись с помехами при чтении неявных атрибутов DOM, сгенерированных компьютером.источник
Я только что написал этот короткий сценарий; вроде работает.
источник
Есть способ сказать, что нет. Просто сделай не то, чего никогда не будет. Хорошая ссылка на селектор css: https://www.w3schools.com/cssref/css_selectors.asp, который показывает селектор: not следующим образом:
Вот пример: за div следует что-то (что угодно, кроме тега az)
источник