Jquery选择器不工作:错误:语法错误,无法识别的表达式:a [@href]

时间:2015-09-03 21:25:44

标签: javascript jquery html css

<body>
    <div>
        <p>This is <strong>first</strong> paragraph</p>
        <p>And this one is second</p>
        <span><h2>I am p inside span</h2></span>
        <h1>I am h1</h1>
    </div>
    <div name="divName">
        <p><a href="www.google.pl">This is a paragraph in second div</a></p>
    </div>
</body>

以下代码告诉我:

  

错误:语法错误,无法识别的表达式:a [@href]

 //Another file
  $(document).ready(function() {
    $("div[p]").css("background-color", "green");
    $("a[@href]").css("background-color", "yellow");
 });

$("div[p]").css("background-color", "green");似乎也无所作为。 这里发生了什么? 根据{{​​3}},这些应该是有效的。

2 个答案:

答案 0 :(得分:2)

目前尚不清楚jquery的版本是什么&#39;教程指向&#39;正在使用,但是,假设您提到的是第17号:

  

$(&#34; DIV [P]&#34)

     

选择匹配的所有元素,其中包含与<p>

匹配的元素

这可能是错误的,也可能是过时的(编辑:看起来已经过时了大约10年......请参阅下面的编辑)。

关于如何实现这一目标的问题也有很多问题,而且没有人给出这个答案。

您应该引用的页面是:

https://api.jquery.com/category/selectors/

其中显示[]用于匹配属性,例如:

<p data-id='123'>
$("p[data-id]")

将匹配具有属性p的所有data-id(无论此情况下的值如何)。

编辑:解决标题中的特定问题&#34;无法识别的表达a [@href]&#34; - 看到这个问题:What does the "@" sign in jQuery selector means?答案表明这是过时&#34; 2个版本之前&#34;在 2010

所以我猜你的教程页面已经过了10年

答案 1 :(得分:1)

<div>
        <p>This is <strong>first</strong> paragraph</p>
        <p>And this one is second</p>
        <span><h2>I am p inside span</h2></span>
        <h1>I am h1</h1>
    </div>
    <div name="divName">
        <p><a href="www.google.pl">This is a paragraph in second div</a></p>
    </div>

JS

//Another file
  $(document).ready(function() {
    $("div p").css("background-color", "green");
    $("a[href]").css("background-color", "yellow");
 });

http://jsfiddle.net/leojavier/kkj5c267/1/