如题 如何直接选取到所有区别于arr[0]的其它值
//arr[1],arr[2],arr[3],arr[4]
首先,在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>
你指的是所有不等于arr[0]的其他值吗?
如果当前元素show() 则其它下标设置hide(),$("xxx")[0].show[].....$('xxx')[!0(我指的是这个意思,应该不能这么表示)].hide()
@NullRookie: 假设你设下标为x的元素show()也就是$("xxx")[x].show()
那么剩下的元素只能通过for循环判断了
for(int i=0;i<n;i++)
{
if(i!=x)
$("xxx")[i].hide();
}