为什么jQuery中的.selector属性不存储有效的选择器值?

假设我有类似这样的HTML:

 

如果在脚本中我的入口点是锚点,我需要使用类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中它甚至引发exception: Error: Syntax error, unrecognized expression: a.parents(.fooContainer)

  • 为什么selector属性不包含有效的选择器值?
  • 如果它不是什么人会使用selector属性?

我尝试搜索jQuery 文档以获取信息,但无法找到与该属性相关的任何内容。

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

根据定义。

所以这是一个实现细节,你不应该尝试使用的属性,因为无法保证,既不是未来的版本,也不是你今天想象的任何用途。