jquery中操作jQuery对象的eq和get的差别与用法--操作前台显示之利器
:eq() 选择器选取带有指定 index 值的元素。
index 值从 0 開始。全部第一个元素的 index 值是 0(不是 1)。
get(index) 取得当中一个匹配的元素。index表示取得第几个匹配的元素。
这可以让你选择一个实际的DOM 元素而且对他直接操作,而不是通过 jQuery 函数。$(this).get(0)与$(this)[0]等价。
以下我们通过一个简单的代码来说明下:
<script type="text/javascript" src="http://u.myxzy.com/jquery/jquery-1.7.1.js"></script> <script> $("document").ready(function(){ alert($("li:eq(0)")); alert($("li").get(0)); }) </script> <ul> <li>Li-1</li> <li>Li-2</li> </ul>
得到的结果是
返回结果分别为:[object Object]和[object HTMLLIElement]
可知,eq返回的是一个jquery对象,get返回的是一个html 对象数组。
使用eq来获得第一个li标签的color值:
$("li").eq(0).css("color") //由于eq(num)返回的是个jq对象,所以能够用jq的方法css
使用get来获得第二个li标签的color值:
$("li").get(1).style.color //由于get(num)返回的是个html对象。所以要使用传统的HTML对象方法。jq对象此时就没用了。
当然,你也能够get(num)后把对象转为jq的对象再进行操作:
$($("li").get(1)).css("color")
由此我们知道,由eq返回的jquery对象,我们能够直接使用jquery的方法如.css(),.html()等。而由get返回的是html数组对象要使用传统的HTML对象方法或者转换成jquery对象后再操作 。
NOTE:能够实现同种效果,那么建议统一使用eq,不必再去费心理会他们之间的差别什么的了。
<script type="text/javascript" src="http://u.myxzy.com/jquery/jquery-1.7.1.js"></script> <script> $("document").ready(function(){ $("li:eq(0)").css("color",'red'); $("li").eq(1).css("color",'blue'); $("li").get(2).style.color='green'; $($("li").get(3)).css("color",'yellow'); }) </script> <ul> <li>li-1</li> <li>li-2</li> <li>li-3</li> <li>li-4</li> </ul>