jQuery:不是选择器和哈希符号语法错误

时间:2015-09-03 13:51:39

标签: javascript jquery jquery-selectors

我收到一个可爱的语法错误。当我尝试选择所有没有包含占位符网址的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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:5)

href的测试需要放在方括号中:

$("a:not([href='#'])")

括号是因为你在CSS选择器中进行属性值测试的方式。例如,如果您只是在查找href的元素,那么它就像

$("[href='#']")