$(第一,第二)中第二个参数的目的是什么

时间:2013-01-30 14:10:12

标签: jquery

  

可能重复:
  What does the second argument to $() mean?

有一段时间我使用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")

过滤方式。我现在很好。

2 个答案:

答案 0 :(得分:6)

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

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();

答案 1 :(得分:2)

该文档位于jQuery API文档right here.

双参数语法有三种形式:

$( selector [, context ] )

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

还有:

$( html [, ownerDocument ] )

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

最后::

$( html, [, attributes ] )

哪个定义创建一个DOM元素,指定要在新创建的元素上调用的属性,事件和方法。