Wie um zu überprüfen, ob jQuery-Objekt vorhanden sind im array?
Gegeben item
und ein array
ich würde gerne wissen, ob item
existieren in array
.
item
ist ein jQuery-Objekt, z.B. $(".c")
. Sie können davon ausgehen, dass item.length == 1
.
array
ist ein array von jQuery-Objekten, z.B. [$(".a"), $(".b")]
. Jedes Element in diesem array darstellen kann 0, 1 oder mehrere Objekte.
Hier ist, wie ich dachte, um dies zu implementieren: (live-demo hier)
function inArray(item, arr) {
for (var i = 0; i < arr.length; i++) {
var items = $.makeArray(arr[i]);
for (var k = 0; k < items.length; k++) {
if (items[k] == item[0]) {
return true;
}
}
}
return false;
}
Finden Sie eine elegantere Umsetzung?
Beispiel:
HTML:
<div class="a">Hello</div>
<div class="a">Stack</div>
<div class="a">Overflow</div>
<div class="b">Have</div>
<div class="b">a</div>
<div class="b">nice</div>
<div class="b">day!</div>
<div class="c">Bye bye</div>
JS:
console.log(inArray($(".a").eq(2), [$(".a"), $(".b")])); //true
console.log(inArray($(".b").eq(3), [$(".a"), $(".b")])); //true
console.log(inArray($(".c"), [$(".a"), $(".b")])); //false
console.log(inArray($(".a").eq(2), [$(".b")])); //false
console.log(inArray($(".a").eq(2), [])); //false
console.log(inArray($(".c"), [$("div")])); //true
Muss es ein array sein? Warum verwenden nicht Sie ein jQuery-Objekt und
Ich denke mal du meinst die Verwendung
Oder Sie können
.index()
?Ich denke mal du meinst die Verwendung
$(".a, .b")
. Klingt vernünftig!Oder Sie können
add()
aufzubauen, das jQuery-Objekt.
InformationsquelleAutor Misha Moroshko | 2012-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach Felix ' Vorschlag:
[$(selector1), $(selector2), ... ]
kann vereinfacht werden zuoder
und dann kann es umgesetzt werden:
Live-demo hier
InformationsquelleAutor Misha Moroshko
was
Lesen Sie hier : http://api.jquery.com/jQuery.inArray/
Diese Lösung funktioniert nicht für eine Reihe von jquery-Elementen
Funktioniert nicht bei Objekt-arrays. Zuerst Lesen.
InformationsquelleAutor Snake Eyes
InformationsquelleAutor Umesh Patil
Die Vereinbarung mit dem Kommentar oben: ausführlich, warum dies eine Antwort würde helfen, alle, vor allem wo Sie sind mit zwei JavaScript - "tricks" in einer Zeile.
InformationsquelleAutor Kirill Popov
InformationsquelleAutor Manjur Gani