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

前端之家收集整理的这篇文章主要介绍了为什么jQuery中的.selector属性不存储有效的选择器值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有类似这样的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是内部和私有的.

根据定义.

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

原文链接:https://www.f2er.com/jquery/180705.html

猜你在找的jQuery相关文章