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来查找

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-11
首先要生成一个空的数组
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);
第2个回答  2015-03-11
<!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>追问

最关键的比较你不说

第3个回答  2015-03-11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<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>

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网