Jquery 单击即可从数组中添加和删除值
我有一个Ul li列表,比如Jquery 单击即可从数组中添加和删除值,jquery,arrays,Jquery,Arrays,我有一个Ul li列表,比如 <ul> <li> <a>item first <a> </li> <li> <a>item first <a> </li> <li> <a>item first <a> </li> <li> <a
<ul>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
</ul>
若再次单击,则检查值是否存在,然后从数组中删除。如果没有,则添加
谢谢首先,我想指出
$(ul a)
中缺少的引号。它应该是带引号的$('ula')
。然后,策略将是在数组中查找文本是否存在,可以这样实现:
var arr=[];
$('ul a')。在('click',function()上{
//使用修剪,使前后的空间不影响
var clickedText=$(this.text().trim();
//单击的锚文本不存在
如果(arr.indexOf(clickedText)!=-1){
//从数组中删除该文本
arr.splice(arr.indexOf(点击文本),1);
}否则{
arr.push(单击文本);
}
控制台日志(arr);
});代码>
-
第一项
-
第一项
-
第一项
-
第一项
到目前为止您尝试了什么?你发布的代码不可能是一个认真的尝试。我刚刚发布了一个不起作用的代码示例
var arr = [];
$(ul a).on('click',function(){
arr.push($(this).text());
})
$(ul a).on('click',function(){
let currentElement=$(this).text().trim();
let foundElement = arr.some(function (element) {
return element==currentElement;
});
if(!foundElement)
{
arr.push(currentElement);
}
else
{
arr.pop(currentElement);
}
});