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

Jquery selector not working: Error: Syntax error, unrecognized expression: a[@href]

本文关键字:错误 表达式 识别 @href 选择器 工作 语法 Jquery      更新时间:2023-09-26
<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");似乎什么也没做。这是怎么回事?根据 http://www.tutorialspoint.com/jquery/jquery-selectors.htm 这些应该是有效的。

目前尚不清楚"tutorialspoint"使用的是哪个版本的jquery,但是,假设您指的是数字17:

$("div[p]"(

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

这要么是完全错误的,要么是非常过时的(编辑:看起来它已经过时了大约 10 年......见下面的编辑(。

SO上也有很多问题询问如何实现这一目标,但没有一个给出这个答案。

您应该引用的页面是:

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

这表明[]用于匹配属性,例如:

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

将匹配具有属性data-id的所有p(在这种情况下与值无关(。


编辑:要解决标题"未识别的表达式a[@href]"中的特定问题 - 请参阅此问题:jQuery选择器中的"@"符号是什么意思? 答案指出这是"2 个版本前"在 2010 年过时的

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

<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/