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

Javascript Jquery选择器不工作:错误:语法错误,无法识别的表达式:a[@href],javascript,jquery,html,css,Javascript,Jquery,Html,Css,还有$(“div[p]”)css(“背景色”、“绿色”)似乎什么都没做。 这是怎么回事? 根据这些规则,这些规则应该是有效的 //Another file $(document).ready(function() { $("div[p]").css("background-color", "green"); $("a[@href]").css("background-color", "yellow"); }); 现在还不清楚“tutorialspoint”使用的是哪个版

还有
$(“div[p]”)css(“背景色”、“绿色”)似乎什么都没做。
这是怎么回事?
根据这些规则,这些规则应该是有效的

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

现在还不清楚“tutorialspoint”使用的是哪个版本的jquery,但是,假设您指的是第17个版本:

$(“div[p]”)

选择与匹配的所有元素,这些元素包含与匹配的元素

这要么是完全错误的,要么是非常过时的(编辑:看起来已经过时10年了……请参见下面的编辑)

也有很多问题,所以问如何实现这一点,他们没有给出这个答案

您应该参考的页面是:

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

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

$(“p[数据id]”)
将匹配所有具有属性
数据id
p
(在本例中不考虑值)


编辑:要解决标题“Unrecogned Expression a[@href]”中的具体问题,请参阅此问题:答案中指出这是2010年过时的“2个版本之前”


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

为什么不给元素
p
a
分配类,并直接用jQuery绑定它们呢?下面给出了一个答案,但我不明白你需要用这个链接做什么…@Shehary问题是语法应该是这样的:我一直在使用jQuery很长一段时间以来,我从未见过像
div[p]
这样的选择器。我甚至不知道该怎么解释。它似乎暗示一个对象文字,或者
p
是一个属性。我认为你被那个网站引入了歧途。
a[@href]
中的
@
意味着一个精确的匹配,这意味着你必须为属性包含一个值
a[@href=“someval”]
查看此项。css(“背景色”、“绿色”);也应该有效
<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>
//Another file
  $(document).ready(function() {
    $("div p").css("background-color", "green");
    $("a[href]").css("background-color", "yellow");
 });
<p data-id='123'>
$("p[data-id]")