/ / Javascript: Elemente nach ID auswählen - Javascript, Jquery

Javascript: Wählen Sie Elemente nach ID aus - javascript, jquery

Ich habe also eine HTML-Liste

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

und in Javascript möchte ich ein Array der Listenelemente erhalten basierend auf ihrer ID. Grundsätzlich, wenn die ID mit beginnt item- dann möchte ich es in ein Array bekommen.

Die erste Möglichkeit bestand darin, alle Elemente im DOM durchzublättern und die ID als Zeichenfolge zu nehmen und so abzugleichen. Gibt es einen besseren Weg?

Antworten:

3 für die Antwort № 1

Wie in den anderen Antworten gesagt, mögen jQuery-Selektoren [id^="item-"] wird gut funktionieren, aber es sollte bemerkt werden, dass dies ist nicht Nur eine jQuery-Funktion, sondern eine DOM-Auswahl, wie von angegeben W3C.
Mit anderen Worten, wenn Sie nicht das Gefühl haben, ein monolithisches Toolkit wie jQuery zu verwenden, nur damit Sie etwas verwenden können spezieller Selektoren schreiben Sie einfach:

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

Und du bist da.
Darüber hinaus ist dies schneller als jQ. jQ kann niemals VanillaJS für Geschwindigkeit anpassen. Es ist nicht notwendig, dass Sie jQ hier verwenden, also nicht. JQ kann das Leben einfacher machen, aber in diesem Fall nicht. Der Selektor ist identisch, so dass Sie jQ nicht benötigen.
Alles, was jQ hier tun wird, ist langsamer und hilft Ihnen, schlechten Code zu schreiben ... Entschuldigung ... Ich musste das von meiner Brust nehmen.


2 für die Antwort № 2

Die richtige Auswahl in jQuery wäre:

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


1 für die Antwort № 3

Selector verwenden: var some_array = $("li[id^="item-"]") von hier: http://api.jquery.com/attribute-starts-with-selector/


0 für die Antwort № 4

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

Wenn Sie jQuery verwenden möchten, sollte dieser Selektor Ihnen das geben, wonach Sie suchen.