/ / Javascript: Selecionar elementos por ID - javascript, jquery

Javascript: Selecionar elementos por ID - javascript, jquery

Então eu tenho uma lista de HTML

<ul>
<li id="item-foo"></li>
<li id="item-bar"></li>
<li id="zoop"></li>
</ul>

e em JavaScript eu quero obter uma matriz dos itens da lista com base no seu ID. Basicamente, se o ID começar com item- então eu quero obtê-lo em uma matriz.

A primeira maneira que fiz isso foi apenas percorrer todos os itens no DOM e pegar o ID como uma string e combiná-lo dessa maneira. Existe uma maneira melhor?

Respostas:

3 para resposta № 1

Como dito nas outras respostas, seletores jQuery como [id^="item-"] vai funcionar bem, mas deve-se notar que isso é não um recurso somente jQuery, mas sim um seletor DOM, conforme especificado por W3C.
Em outras palavras, se você não quiser incluir um kit de ferramentas monolítico como o jQuery, só assim você pode usar mais especial seletores, basta escrever:

var itemIds = document.querySelectorAll("li[id^="item-"]");

E você está aí.
O que é mais, isso será mais rápido que o jq. O jQ nunca pode igualar o vanillaJS pela velocidade. Não há necessidade de você usar o jQ aqui, então não. O JQ pode tornar a vida mais fácil, é verdade, mas não neste caso. O seletor é idêntico, então você não precisa do jQ.
Tudo que o jQ vai fazer aqui é te atrapalhar, e te ajudar a escrever código ruim ... Desculpe ... eu precisava tirar isso do meu peito.


2 para resposta № 2

O seletor adequado no jQuery seria:

$("li[id^="item-"]")


1 para resposta № 3

Use seletor: var some_array = $("li[id^="item-"]") daqui: http://api.jquery.com/attribute-starts-with-selector/


0 para a resposta № 4

$("[id^="item-""]

Se você quiser usar o jQuery, esse seletor deve fornecer o que você está procurando.