我收到一个可爱的语法错误。当我尝试选择所有没有包含占位符网址的href的锚标记时,即href="#"
。
我尝试过以下方法:
$("a:not(href='#')");
//swapped single with double quotes
$('a:not(href="#")');
// no quotes at all
$("a:not(href=#)");
// wildcard selector
$("a:not(href*=#)");
所有这些都会导致以下错误:
未捕获错误:语法错误,无法识别的表达式:href =#(...)
有什么想法吗?
以下代码段:
var $item = $("a:not(href='#')");
console.log($item);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://google.com">Selected</a>
<a href="#">Not selected</a>
&#13;
答案 0 :(得分:5)
href
的测试需要放在方括号中:
$("a:not([href='#'])")
括号是因为你在CSS选择器中进行属性值测试的方式。例如,如果您只是在查找href
的元素,那么它就像
$("[href='#']")