$('。classname')和$ .find('。classname')之间有什么区别

时间:2012-03-28 08:51:10

标签: javascript jquery jquery-selectors

有时$('.classname')$.find('.classname')会产生不同的结果。想知道两者之间有什么区别。

3 个答案:

答案 0 :(得分:6)

$('.classname')

将在DOM中搜索具有类classname

的元素
$.find('.classname')

给你错误什么都不做,why

  

.find(选择器)

     

selectorA包含用于匹配元素的选择器表达式的字符串   反对。版本增加:1.6。

     

.find(jQuery对象)   jQuery objectA jQuery对象匹配元素。版本添加:   1.6

     

.find(element)   elementAn匹配元素的元素。

答案 1 :(得分:2)

我不能告诉你,

但您可以看到$.find$.fn.find

的源代码

<强> $.find

这是jQuery本身使用的方法,并没有被推荐用作查询选择器。

<强> $.fn.find

指核心框架中的$.find :(其中this是jQuery对象)

var ret = this.pushStack("", "find", selector),
    length, n, r;

for (i = 0, l = this.length; i < l; i++) {
    length = ret.length;
    jQuery.find(selector, this[i], ret);

    ...

答案 2 :(得分:1)

$('.classname')将返回文档中具有该类名的所有元素的列表,以便可以使用.each()进行迭代。

$.find('.classname')搜索dom树并返回该类的出现。但是你必须提供一个父元素,例如:

$(document).find('.classname')