$('div div') 和 $('div').find('div') 之间的区别?

发布于 2024-11-16 07:17:21 字数 392 浏览 0 评论 0原文

我只是在研究 jQuery,偶然发现了 Find 函数。

我这样测试:

$(document).ready(function(){

    $('button').click(function(){

        $('div').find('div').fadeOut(2000);

    });
});

并且这

$(document).ready(function(){

    $('button').click(function(){

        $('div div').fadeOut(2000);

    });
});

两者都产生完全相同的结果。

有什么区别? :)

I was just poking around with jQuery, and I stumbled upon the Find function.

I tested like this:

$(document).ready(function(){

    $('button').click(function(){

        $('div').find('div').fadeOut(2000);

    });
});

And this

$(document).ready(function(){

    $('button').click(function(){

        $('div div').fadeOut(2000);

    });
});

And both produce the exact same result.

Whats the difference? :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

薄荷港 2024-11-23 07:17:21

在您的示例中没有区别,但在某些情况下您不能使用第一个,例如,假设您有一个元素作为函数的参数,并且您想在其中查找 div,那么您必须使用“查找”方法。

function foo(index, el)
{
    $(el).find("div")...
}

但是当您知道确切的路径时,显然第二种方法更加稳健。

In your example there is no difference but there are cases that you can not use the first one, for example let't say you have an element as the parameter of a function and you want to find divs inside it, then you have to use the "Find" method.

function foo(index, el)
{
    $(el).find("div")...
}

But when you know the exact path, obviously the second approach is more robus.

橘虞初梦 2024-11-23 07:17:21

没有什么区别。

如果您已经有一个 jQuery 对象,find 方法很有用。
否则,单个选择器会更简单。

因此,大多数选择器都有等效方法(.children().first().not())。

方法版本还允许您调用 .end() 返回到前一个对象。

There is no difference.

If you already have a jQuery object, the find method is useful.
Otherwise, a single selector is simpler.

Most selectors have method equivalents (.children(), .first(), .not()) for this reason.

The method versions also allow you to call .end() to go back to the previous object.

墨洒年华 2024-11-23 07:17:21

它们都执行完全相同的操作,但在旧版浏览器中 document.querySelectorAll() 不可用(旧 IE)$("div").find("div");< /code> 更快,正如 Paul Irish 在 此处评论

另一件需要注意的事情是,在 jQuery 中,您还可以执行以下操作:

$("div", "#some-element")

这将在 #some-element 内搜索 div。 jQuery 实际上将其转换为:

$("#some-element").find("div")

因此始终建议使用 .find() 而不是传递上下文。

They both do exactly the same thing, but in older browsers where document.querySelectorAll() is not available (Old IEs) $("div").find("div"); is quicker, as Paul Irish confirms in this comment here.

Another thing to note is that in jQuery you can also do this:

$("div", "#some-element")

Which would search for div inside of #some-element. jQuery actually converts this into:

$("#some-element").find("div")

So it's always suggested to use .find() rather than pass in a context.

晨曦÷微暖 2024-11-23 07:17:21

在这个具体情况下,他们做同样的事情。请注意,find() 将遍历所有匹配元素的后代。

In this specific case, they do the same thing. Note that find() will traverse all the descendants of the matched elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文