有什么区别$("*", $("#container1"))
and $("#container2").find("*")
?。
我一般用AA,但不太好的话可以多直到奇数。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script language="JavaScript">
$(function(){
var endTime = 0, iniTime = 0, counter = 0;
iniTime = (new Date()).getTime();
$("*", $("#container1")).each(function()
{
counter++;
});
endTime = (new Date()).getTime();
$("#result").append("<div>Container enviroment -> "+counter+" "+(endTime-iniTime)+"</div>");
endTime = 0; iniTime = 0; counter = 0;
iniTime = (new Date()).getTime();
$("#container2").find("*").each(function()
{
counter++;
});
endTime = (new Date()).getTime();
$("#result").append("<div>Find method -> "+counter+" "+(endTime-iniTime)+"</div>");
});
</script>
</head>
<body>
<div id="result"></div>
<div id="container1">
<span></span>...
</div>
<div id="container2">
<span></span>...
</div>
</body>
</html>
Result:
IE8
Container enviroment -> 9752 282
Find method -> 9752 296
Chrome 4.0
Container enviroment -> 9752 65
Find method -> 9752 66
Firefox
Container enviroment -> 9752 135
Find method -> 9752 125
Safari
Container enviroment -> 9752 46
Find method -> 9752 51
如果使用得当,上下文选择器与 find 没有什么不同。 Resig 表示他不喜欢上下文选择器,并且更喜欢人们使用 .find(),因为它在语义上更有意义。
有很多方法可以搞乱上下文;例如,传递字符串不起作用并导致选择器默认解析整个文档。我相当确定您的示例正确使用了上下文(没有时间测试),但再次使用 .find() 克服了这种不确定性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)