jquery部分选择器如何工作?

时间:2013-02-25 08:52:23

标签: jquery jquery-selectors

我的页面呈现如下评论:

<div class="ReadComment comment#1">
    First comment
    <br>
    <span>posted by vi vi on 2/25/2013</span>
    <p>My first comment</p>
</div>

我使用'comment#'类枚举我的评论的顺序。

我尝试使用jquery选择器来选择以'comment#'开头的所有类的元素:

  

var comments = $(“div [class ^ ='comment#']”);

但它不会这样。 相反

var comments = $("div[class*='comment#']");

完美无缺。

我认为jquery会单独检查每个元素的类。因此,如果我写[class^='comment#'],它将首先检查ReadComment类,然后检查comment#类。

但它似乎只检查了一行类。 是这样吗? 有人可以解释它是如何工作的吗?我没有找到解释) 谢谢)

2 个答案:

答案 0 :(得分:4)

这些是属性选择器。在您的情况下,您检查class属性是否字面上以字符串comment#开头,但它不是(我不认为#是类名的有效字符任一)。

*=有效,因为它会检查comment#是否在属性的值范围内。

如果您想进行更高级的过滤,则必须使用.filter()并自行编写功能。

答案 1 :(得分:2)

在jQuery #中保留用于DOM id选择。

comment#此代码执行的操作是查找id的评论标记。

这是不正确的$("div[class*='comment#']")这个包含comment#类的选择DOM意味着找到在结尾或者开始时包含comment#的类或类名中的任何位置。