Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 单击即可从数组中添加和删除值_Jquery_Arrays - Fatal编程技术网

Jquery 单击即可从数组中添加和删除值

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列表,比如

<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);
    }
});