item
とarray
が与えられた場合、item
がarray
に存在するかどうかを知りたいと思います。配列にjQueryオブジェクトが存在するかどうかを確認する方法は?
item
はjQueryオブジェクトです。 $(".c")
。 item.length == 1
と仮定できます。
array
は、jQueryオブジェクトの配列です。 [$(".a"), $(".b")]
。この配列内の各項目は、0,1、またはそれ以上のオブジェクトを表します。あなたはよりエレガントな実装を見つけることができ
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;
}
(live demo here):ここで
は、私はこれを実装すると思った方法ですか?
例:
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
それは配列でなければなりませんか?なぜjQueryオブジェクトと['.index()'](http://api.jquery.com/index/)を使用しないのですか? –
@Felix: '$(" .a、.b ")'を使うことを意味すると思います。合理的に聞こえる! –
また、['add()'](http://api.jquery.com/add/)を使ってjQueryオブジェクトをビルドすることもできます。 –