6

假设我有与此类似的 HTML:

<div class="fooContainer">
    <div class="barContainer">
        <a href="#">foo-bar</a>
    </div>
</div>

如果在脚本中我的入口点是锚点,我需要使用类 fooContainer 进入 div,我可以这样做:

var $fooContainer = $("a").parents(".fooContainer");

这工作得很好,因为$fooContainer现在保存了对 DOM 中元素的引用。

当我现在打印出这样的selector值时:

console.log($fooContainer.selector)

我得到了价值a.parents(.fooContainer)

我的印象是该selector属性返回了一个字符串,该字符串本身就是一个有效的选择器值。

情况并非如此,就像尝试将其用作这样的选择器时:

$("a.parents(.fooContainer)")

它在 jQuery 1.7.2 中找不到匹配项。
在最新的 jQuery 1.8.x 中,它甚至会抛出异常:Error: Syntax error, unrecognized expression: a.parents(.fooContainer)

  • 为什么选择器属性不包含有效的选择器值?
  • 如果不是,人们会使用该selector财产做什么?

我尝试在 jQuery文档中搜索信息,但找不到与该属性相关的任何内容。

4

1 回答 1

5

您可以轻松阅读源代码,但可浏览 API中未记录的内容是内部和私有的。

根据定义。

所以这是一个实现细节,一个你真的不应该尝试使用的属性,因为没有保证,无论是未来版本还是你今天可能想象的任何用途。

于 2012-09-14T14:46:34.330 回答