首页 新闻 会员 周边 捐助

arr=[0,1,2,3,4]反向选取arr[0]的其它所有值

0
悬赏园豆:5 [已解决问题] 解决于 2018-04-04 16:08

如题 如何直接选取到所有区别于arr[0]的其它值

//arr[1],arr[2],arr[3],arr[4]

NullRookie的主页 NullRookie | 初学一级 | 园豆:44
提问于:2018-04-04 15:28
< >
分享
最佳答案
0

首先,在Jquery中,不推荐采用arr[1]这种方式来取值,这样返回的不是Jquery 对象而是标准的HTMLDOM。

采用 $("div").eq(1) 或者 $("div:eq(1)") 的方式。

 

说回重点

Jquery 对象有个 siblings() 方法 可以选择当前节点的所有兄弟节点

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <script type="text/javascript" src="/jquery/jquery.js"></script>
 5 </head>
 6 
 7 <body>
 8 <div>
 9   <p>Hello</p>
10   <p class="selected">Hello Again</p>
11   <p>And Again</p>
12 </div>
13 <div>
14   <p>other</p>
15 </div>
16 <script>
17 $("p:eq(1)").siblings().css("background", "yellow");
18 </script>
19 
20 </body>
21 </html>

但是看出来,在不同父节点下是不行的。

 

换个方法,JQuery还有一个Not()方法和筛选器

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <script type="text/javascript" src="/jquery/jquery.js"></script>
 5 </head>
 6 
 7 <body>
 8 <div>
 9 <p>This is a paragragh.</p>
10 <p>This is a paragragh.</p>
11 <p>This is a paragragh.</p>
12 <p>This is a paragragh.</p>
13 </div>
14 <div>
15 <p>This is a paragragh.</p>
16 <p>This is a paragragh.</p>
17 </div>
18 <script>
19 $("p").not(":eq(2)").css('background-color', 'red');
20 //或者
21 //$("p:not(:eq(2))").css('background-color', 'red');
22 </script>
23 
24 </body>
25 </html>
收获园豆:5
写代码的相声演员 | 小虾三级 |园豆:517 | 2018-04-04 16:00
其他回答(1)
0

你指的是所有不等于arr[0]的其他值吗?

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-04-04 15:33

如果当前元素show() 则其它下标设置hide(),$("xxx")[0].show[].....$('xxx')[!0(我指的是这个意思,应该不能这么表示)].hide()

支持(0) 反对(0) NullRookie | 园豆:44 (初学一级) | 2018-04-04 15:43

@NullRookie: 假设你设下标为x的元素show()也就是$("xxx")[x].show()

那么剩下的元素只能通过for循环判断了

for(int i=0;i<n;i++)

{

     if(i!=x)

        $("xxx")[i].hide();

}

支持(0) 反对(0) Shendu.CC | 园豆:2138 (老鸟四级) | 2018-04-04 15:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册