2

可能重复:
$() 的第二个参数是什么意思?

有一段时间我使用 jQuery,有时我会看到:

$(argument1, argument2).doSomething();

使用第二个参数进行过滤的文档在哪里?

编辑:

我说的是这种使用方式:

var t=0; // the height of the highest element (after the function runs)
var t_elem;  // the highest element (after the function runs)
$("*",elem).each(function () {
    $this = $(this);
    if ( $this.outerHeight() > t ) {
        t_elem=this;
        t=$this.outerHeight();
    }
});

注意:

$("*",elem)

我不是在谈论

$("a,b,span")

过滤方式。我现在很好。

4

2 回答 2

6

jQuery()这是文档中的第一个定义:

jQuery( selector [, context ] )

   selector
      Type: selector
      A string containing a selector expression

   context
      Type: Element, jQuery
      A DOM Element, Document, or jQuery to use as context

再往下:

选择器上下文

默认情况下,选择器从文档根目录开始在 DOM 中执行搜索。但是,可以通过使用函数的可选第二个参数为搜索提供替代上下文$()

但是,在内部它只是调用.find,您经常会发现人们建议使用.find过度传递第二个参数。

所以,你的例子相当于$(argument2).find(argument1).doSomething();

于 2013-01-30T14:13:38.050 回答
2

该文档位于此处的 jQuery API 文档中。

双参数语法有三种风格:

$( selector [, context ] )

它将选择器的范围限定为context元素的子级。这是您发布的示例代码中使用的变体。selector应用于节点的后代节点context

还有:

$( html [, ownerDocument ] )

它从提供的原始 HTML 字符串动态创建 DOM 元素。

最后::

$( html, [, attributes ] )

它定义了创建 DOM 元素的指定属性、事件和方法来调用新创建的元素。

于 2013-01-30T14:12:42.713 回答