gpt4 book ai didi

javascript - $.inArray() 用于存储在数组中的元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:14 24 4
gpt4 key购买 nike

假设在 jQuery 中我将 DOM 元素放入一个数组中,

var elemarray = [];

elemarray.push($('#elem1'));
elemarray.push($('#elem2'));

然后可以使用 $.inArray 来确定数组是否包含元素吗?

if ( $.inArray($('#elem2'), elemarray) > -1 ) { .. }

我看到的仅有的原始类型、字符串和数字示例。

JSFiddle,不工作:https://jsfiddle.net/5knyrcph/2/

最佳答案

问题是您存储的不是 DOM 元素,而是 jQuery 包装器。每次创建这样的包装器时,它都是一个新的 jQuery 对象。

而是使用真正的 DOM 元素本身,通过 jQuery,您可以通过 .get() 获得这些元素:

var elemarray = [];
elemarray.push($('#elem1').get(0));
elemarray.push($('#elem2').get(0));

if ($.inArray($('#elem1').get(0), elemarray) > -1) {
console.log('Found');
}
else {
console.log('Not found');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="elem1">
Test
</div>

<div id="elem2">
Test2
</div>

在 HTML5/ES6 中,您可以在没有 jQuery 的情况下用更短的代码执行此操作:

const elemSet = new Set([elem1, elem2]);

if (elemSet.has(elem1)) {
console.log('Found');
}
else {
console.log('Not found');
}
<div id="elem1">
Test
</div>

<div id="elem2">
Test2
</div>

关于javascript - $.inArray() 用于存储在数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46778803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com