1

我的页面呈现这样的评论:

<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#班级。

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

4

2 回答 2

4

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

*=之所以有效,是因为它检查是否comment#在属性的值内,它是。

如果你想做更高级的过滤,你必须自己使用.filter()和编写一个函数。

于 2013-02-25T08:54:56.183 回答
2

在 jQuery#中保留用于 DOMid选择。

comment#这段代码的作用是寻找注释标签 whth id

这是不正确的,$("div[class*='comment#']")这个 select DOM with class containscomment#意味着查找包含comment#在 end 或 beginnig 或类名中的任何位置的类。

于 2013-02-25T08:55:58.473 回答