假设我有类似这样的HTML:
<div class="fooContainer"> <div class="barContainer"> <a href="#">foo-bar</a> </div> </div>
如果在脚本中我的入口点是锚点,我需要使用类fooContainer到达div,我可以这样做:
var $fooContainer = $("a").parents(".fooContainer");
这很好用,因为$fooContainer现在保存了对DOM中元素的引用.
当我现在打印出这样的选择器值:
console.log($fooContainer.selector)
我得到了值a.parents(.fooContainer).
我的印象是selector属性返回一个字符串,该字符串本身就是一个有效的选择器值.
但是当尝试将它用作这样的选择器时,情况并非如此:
$("a.parents(.fooContainer)")
它在jQuery 1.7.2中找不到匹配项.
在最新的jQuery 1.8.x中它甚至引发异常:错误:语法错误,无法识别的表达式:a.parents(.fooContainer)
>为什么selector属性不包含有效的选择器值?
>如果不是,那么使用selector属性的是什么?
我尝试搜索jQuery documentation以获取信息,但无法找到与该属性相关的任何内容.
解决方法
您可以轻松阅读
the source code但未记录的内容
in the browsable API是内部和私有的.
根据定义.
所以这是一个实现细节,你不应该尝试使用的属性,因为无法保证,既不是未来的版本,也不是你今天想象的任何用途.