Javascript 美元(';div div';)和美元(';div';)之间的差额。查找(';div';)?
我只是随便看看jQuery,偶然发现了Find函数 我是这样测试的:Javascript 美元(';div div';)和美元(';div';)之间的差额。查找(';div';)?,javascript,jquery,html,find,Javascript,Jquery,Html,Find,我只是随便看看jQuery,偶然发现了Find函数 我是这样测试的: $(document).ready(function(){ $('button').click(function(){ $('div').find('div').fadeOut(2000); }); }); 还有这个 $(document).ready(function(){ $('button').click(function(){ $('div div')
$(document).ready(function(){
$('button').click(function(){
$('div').find('div').fadeOut(2000);
});
});
还有这个
$(document).ready(function(){
$('button').click(function(){
$('div div').fadeOut(2000);
});
});
两者产生完全相同的结果
有什么区别吗?:) 在您的示例中没有区别,但有些情况下您不能使用第一个,例如,假设您有一个元素作为函数的参数,并且您希望在其中查找div,那么您必须使用“find”方法
但是,当你知道确切的路径时,显然第二种方法更具鲁棒性。没有区别 如果您已经有一个jQuery对象,
find
方法很有用。否则,单个选择器更简单 由于这个原因,大多数选择器都有方法等价物(
.children()
,.first()
,.not()
)
方法版本还允许您调用以返回到以前的对象。在这种特定情况下,它们也执行相同的操作。请注意,
find()
将遍历匹配元素的所有子体。它们都做完全相同的事情,但在较旧的浏览器中,document.queryselectoral()
不可用(旧IE)$(“div”).find(“div”)正如Paul Irish在中确认的那样,代码>更快
另一件需要注意的事情是,在jQuery中,您也可以这样做:
$("div", "#some-element")
它将在#某些元素
的内部搜索div
。jQuery实际上将其转换为:
$("#some-element").find("div")
因此,总是建议使用.find()而不是在上下文中传递。根据函数规范,应该没有任何区别。可能有一些性能差异,应该可以忽略不计。@Jon嗯,后者更容易输入:)+1这是真的。另一方面,带有qSA的浏览器使用div-div
会更快@Jeff:只有当el
是一个选择器时才会如此。@vali:那只适用于.find
,而不适用于其他选择器。@valipour-当你使用$(el,'div')时,这不起作用-它也会影响el
。@Jeff:从来没有试过那一个,但我相信现在他们都应该被弃用了。有许多可读性更强的可链接树遍历方法。请参见此处:是的,在这种特定情况下。我注意到了find()
nice的一般功能,我不知道.end(),但它不是有太多的链接吗?使用此选项将使代码无法读取:)
$("#some-element").find("div")