119
rated 0 times
[
122]
[
3]
/ answers: 1 / hits: 33178
/ 13 Years ago, sat, january 7, 2012, 12:00:00
Given an item
and an array
, I would like to know if item
exist in array
.
item
is a jQuery object, e.g. $(.c)
. You can assume that item.length == 1
.
array
is an array of jQuery objects, e.g. [$(.a), $(.b)]
. Each item in this array may represent 0, 1, or more objects.
Here is how I thought to implement this: (live demo here)
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;
}
Can you find a more elegant implementation?
Example:
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
More From » jquery