为什么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中未记录的内容和私有内容。
根据定义。
所以这是一个实现细节,你不应该尝试使用的属性,因为无法保证,既不是未来的版本,也不是你今天想象的任何用途。