Existe uma maneira de corresponder um nome de elemento curinga usando querySelector
or querySelectorAll
? Vejo suporte para curingas em consultas de atributo, mas não para os próprios elementos.
O documento XML que estou tentando analisar é basicamente uma lista simples de propriedades e preciso encontrar elementos que tenham determinadas cadeias de caracteres em seus nomes.
Sei que o documento XML provavelmente precisa de uma reestruturação, se eu precisar disso, mas isso simplesmente não vai acontecer.
Qualquer solução, exceto voltar a usar o XPath aparentemente obsoleto (o IE9 descartou) é aceitável.
javascript
dom
domparser
selectors-api
Erik Andersson
fonte
fonte
Respostas:
[id^='someId']
corresponderá a todos os IDs começando comsomeId
.[id$='someId']
corresponderá a todos os IDs terminados emsomeId
.[id*='someId']
corresponderá a todos os IDs que contêmsomeId
.Se você estiver procurando pelo
name
atributo, substitua-oid
porname
.Se você está falando sobre o nome da tag do elemento, não acredito que exista uma maneira de usar
querySelector
fonte
document.querySelectorAll("div[id$='foo']")
IE8 apenas com suporte parcial ao QSA, acho que eles suportam apenas seletores CSS2.1, portanto, esses seletores não funcionarão no IE8, mas o IE9 + funcionará.Eu estava bagunçando / meditando sobre one-liners envolvendo querySelector () e acabei aqui, e tenho uma possível resposta para a pergunta OP usando nomes de tags & querySelector (), com créditos para @JaredMcAteer por responder MINHA pergunta, também conhecido como RegEx-like corresponde a querySelector () em baunilha Javascript
Esperar que o seguinte seja útil e atenda às necessidades do OP ou de todos os outros:
Então, podemos, por exemplo, obter o material src, etc ...
fonte
Defina o tagName como um atributo explícito:
Eu mesmo precisava disso, para um documento XML, com tags aninhadas terminando em
_Sequence
. Veja a resposta JaredMcAteer para mais detalhes.Eu não disse que seria bonito :) PS: Eu recomendaria usar
tag_name
sobre tagName, para que você não tenha interferências ao ler atributos DOM implícitos 'gerados por computador'.fonte
Acabei de escrever este pequeno roteiro; parece funcionar.
fonte
Existe uma maneira de dizer o que não é. Basta fazer o não algo que nunca será. Uma boa referência de seletor de css: https://www.w3schools.com/cssref/css_selectors.asp que mostra o seletor: not da seguinte maneira:
Aqui está um exemplo: uma div seguida por algo (qualquer coisa, exceto a tag az)
fonte