代码中的注释显示空格位于选择器之后的位置。如果我在结束引号之前删除空格代码中断,我不明白为什么。有人可以解释一下吗?谢谢。
<script type="text/javascript">
$("document").ready(function() {
buildBookmarks('h3', 'header');
});
function buildBookmarks(strWhichTag, sBookMarkNode) {
var cAnchorCount = 0;
var oList = $("<ul id='bookmarksList'>");
以下是结束后的空间
$("div:not([id=header]) " + strWhichTag).each(function() {
$(this).html("<a name='bookmark" + cAnchorCount + "'></a>" + $(this).html());
oList.append($("<li><a href='#bookmark" + cAnchorCount++ + "'>" + $(this).text() + "</a></li>"));
});
$("#" + sBookMarkNode).append(oList);
}
</script>
答案 0 :(得分:2)
显然strWhichTag
包含另一个选择器,它意味着在连接这两个选择器字符串时表示div:not(...)
的子项。
例如,考虑div.foo
(div与类名“foo”)和div .foo
之间的区别(类名为“foo”的元素,它是div的子元素)< / p>
答案 1 :(得分:0)
根据W3C:
后代选择器由两个或多个由空格分隔的选择器组成。当元素B是某个祖先元素A的任意后代时,形式为“A B”的后代选择器匹配。
http://www.w3.org/TR/CSS2/selector.html#descendant-selectors
如果strWhichTag
是div:not([id=header])
的孩子,则两者之间必须有空格。