jquery查找数组元素是不是存在的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery查找数组元素是不是存在的问题相关的知识,希望对你有一定的参考价值。

<div cladd="box">
<ul>
<il>一</li>
<il>二</li>
<il>三</li>
<il>四</li>
<il>五</li>
</ul>
<button class="button">全选</button>
</div>
<div cladd="box">
<ul>
<il>六</li>
<il>七</li>
<il>八</li>
<il>九</li>
<il>十</li>
</ul>
<button class="button">全选</button>
</div>
var arr=[];
效果:有一个数组。点击当前box下button的时候,如果此时数组中已存在当前box下的所有的li的值,那就在数组中删除当前box下的所有li值,如果没有或有几个但不是全部(因为li有另外的点击自己增加自己的值到数组的效果,所以不确定此时数组里li的值的个数),就把当前box下的所有li的值添加进数组(已存在的就不用加了,不要重复)

规定数组存放的为1,2,3,4这样的数字。


首先定义一个方法,查询数组中是否存在当前所点击的全部,参数为一个数组!

function checkIsAll(a)
    for(var i = 0;i < a.length;i++)
        if(!arr.indexOf(a[i]))
            return false;//如果有一个不存在就返回false
        
    
    return true;


//button的点击事件
$('.button').click(function()
    //如果点击的第一个button就给数组为[1,2,3,4,5],如果点击的第二个就给[6,7,8,9,10]
    var a = [[1,2,3,4,5],[6,7,8,9,10]][$('.button').indexOf($(this))];
    
    //判断当前点击的里面的是否全部存在数组中
    if(checkIsAll(a))
        //全部存在,循环删除arr里面对应的a
        for(var i = 0;i < a.length;i++)
            arr.splice(arr.indexOf(a[i]),1);
        
    else
        //不是全部存在
        for(var i = 0;i < a.length;i++)
            if(arr.indexOf(a[i])==-1)
                arr.push(a[i]);
            
        
    
);

望采纳

追问

规定数组存放的为1,2,3,4这样的数字

不是数字放的,是字符串

追答

怎样的字符串? 如果只是字符串同样可以用indexOf来查找

参考技术A 首先要生成一个空的数组
var jQueryArr = [];
jQueryArr[0] = $(".box:eq(0)").children().children("li").splice(0 , $(".box:eq(0)").children().children("li").length);//初始化数组,保留jQuery元素数组的一些方法,这里可用循环遍历,each也行
然后就是判断了,楼上的写得差不多了都

哦,对了,这里不要用push了,应该用 concat 来连接两个数组arr_a.concat(arr_b);
参考技术B <!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function()
var arr = [];
var buttons = $(".buttonclass");
buttons.click(function()
var value = $(this).prev();
var content = value.text();
alert(content);
//下面把content里面的内容与数组里面的比较就ok了
//楼上有个标签写错了哟

);
)
</script>
</head>
<body>
<div class="box">
<ul>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
</ul>
<button class="buttonclass">全选</button>
</div>
<div class="box">
<ul >
<li>六</li>
<li>七</li>
<li>八</li>
<li>九</li>
<li>十</li>
</ul>
<button class="buttonclass">全选</button>
</div>
</body>
</html>追问

最关键的比较你不说

参考技术C <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>
<script>
var arr=[];
$(function()
$("li").click(function()
arr.push(this.innerHTML);
);
$(".button").click(function()
var li=$(this).parent().find("li");
var flag=false;
for(var i=0;i<li.length;i++)
if(arr.indexOf(li[i].innerHTML)<0)
arr.push(li[i].innerHTML);
flag=true;


alert(arr);
if(!flag)
for(var i=0;i<li.length;i++)
arr.splice(arr.indexOf(li[i].innerHTML),1);

alert(arr);

);
)
</script>
</head>
<body>
<div class="box">
<ul>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
</ul>
<button class="button">全选</button>
</div>
<div class="box">
<ul>
<li>六</li>
<li>七</li>
<li>八</li>
<li>九</li>
<li>十</li>
</ul>
<button class="button">全选</button>
</div>

</body>

</html>

JavaScript查找数组是否存在指定元素

利用JavaScript的函数有两种方式

1.jQuery

   jQuery.inArray( value, array [, fromIndex ] )

  • value
    类型: Anything
    要查找的值。
  • array
    类型: Array
    一个数组,通过它来查找。
  • fromIndex
    类型: Number
    数组索引值,表示从哪里在开始查找。默认值是0,这将查找整个数组。
  • $.inArray()方法类似于JavaScript的原生.indexOf()方法,没有找到匹配元素时它返回-1。如果数组第一个元素匹配value(参数) ,那么$.inArray()返回0。

2.indexof

    

  indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

  语法

 stringObject.indexOf(searchvalue,fromindex)
参数描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

  说明

   该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如      果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

  提示和注释

  注释:indexOf() 方法对大小写敏感!

  注释:如果要检索的字符串值没有出现,则该方法返回 -1。

 

以上是关于jquery查找数组元素是不是存在的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何查找 jQuery 中是不是存在具有特定 id 的 div?

jquery判断节点是不是存在

js如何查找数组中是不是存在某个值

c语言,查找数组中是不是存在某个数?

JS中如何判断数组中是不是包含某一元素

jquery判断一个元素是不是存在