我的页面呈现如下评论:
<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#
类。
但它似乎只检查了一行类。 是这样吗? 有人可以解释它是如何工作的吗?我没有找到解释) 谢谢)
答案 0 :(得分:4)
这些是属性选择器。在您的情况下,您检查class
属性是否字面上以字符串comment#
开头,但它不是(我不认为#
是类名的有效字符任一)。
*=
有效,因为它会检查comment#
是否在属性的值范围内。
如果您想进行更高级的过滤,则必须使用.filter()
并自行编写功能。
答案 1 :(得分:2)
在jQuery #
中保留用于DOM id
选择。
comment#
此代码执行的操作是查找id
的评论标记。
这是不正确的$("div[class*='comment#']")
这个包含comment#
类的选择DOM意味着找到在结尾或者开始时包含comment#
的类或类名中的任何位置。