我如何jquery文档的一部分?

时间:2009-05-09 15:44:35

标签: jquery dom

我看了JQuery documentation,阅读了常见问题解答并看了很多例子。看起来要获取规则描述的文档中的所有元素集,您需要编码

$(rule)

其中rule是一个字符串,其语法描述为here。文档似乎是一个隐藏的输入参数。我可以用DOM的子树做同样的事情吗?如果我有一个DOM元素,我可以编写类似

的代码
element.$(rule)

3 个答案:

答案 0 :(得分:4)

$(rule, element)

来自文档:

  

jQuery(表达式,上下文)

     

jQuery的核心功能   围绕这个功能。   jQuery中的所有内容都基于   这个,或以某种方式使用它。该   这个功能最基本的用途是   传递一个表达式(通常   由CSS组成,然后找到   所有匹配元素。

     

默认情况下,如果没有上下文   指定,$()查找DOM元素   在当前HTML的上下文中   文献。如果确实指定了上下文,   例如DOM元素或jQuery   对象,表达式将匹配   反对该背景的内容。

     

请参阅选择器以获取允许的CSS   表达式的语法。

答案 1 :(得分:2)

有几种方法可以做到这一点。如果你有这样的文件:

<html>
<body>
  <p>Test</p>
  <div id="box">
    <p>Hi There</p>
    <div id="subbox">
      <p>Bye</p>
    </div>
  </div>
  <p>Boo</p>
</body>
</html>

你只想要框内的段落,你可以specify a context搜索:

$('p','#box'); // only find paragraphs inside of #box

或者您可以使用findchildren等功能:

$('#box').find('p'); // will return both the paragraphs inside of #box

$('#box').children('p'); // will only return the immediate children

我没有尽可能长的选择器,而是通常希望尽可能地分离搜索词,因为a)我认为以这种方式思考它更有意义,b)它有助于jQuery解析,所以它稍快一些。因此,每当我只想搜索文档的一部分时,我有时会使用上下文和附加函数的组合:

$(myelement, mygreatercontext).find(myrefinedsearch);

答案 2 :(得分:0)

$(element).find(rule)