<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);
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>追问
<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>
<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>