Why does "document.querySelector('a.some class'

Why does "document.querySelector('a.some class') [0].href" retun null?

本文关键字:some class document does quot Why querySelector      更新时间:2023-09-26

建议(此处)使用:

var nextPageUrl = document.querySelector('a.some class')[0].href;

以获取包含在锚点内的URL。但是Firebug控制台说它返回null:

TypeError:document.querySelector(…)为空

语法似乎是正确的,"somme类"锚点确实存在,如下所示。

<a href="mypage02.html" target="_self" class="some class" title="My Second Page">

我试过

var nextPageUrl = document.querySelectorALL('a.some class')[0].href;

然后我得到一个"未定义"的错误。

非常感谢

由于someclass是同一元素中的两个不同类,因此需要使用.some.class,如果在它们之间留出空间,它将成为子代选择器。

<a href="mypage02.html" target="_self" class="some class" title="My Second Page">

有一些和类有2个不同的类

var nextPageUrl = document.querySelectorAll('a.some.class')[0].href;

您正在寻找一个标记名为class的元素,它是类为some(如)的锚点的后代

<a href="mypage02.html" target="_self" class="some" title="My Second Page">
    <maybe-some-parents>
        <some></some>
    </maybe-some-parents>
</a>

a.some class被解释为

<a class="some">
  <doesn'tMatterHowDeep>
     <class>Only I'm selected</class>
  </doesn'tMatterHowDeep>
</a>

由于您使用的是一个空格,因此需要选择一个标记名为class的元素,该元素位于a.some之下,而实际上,它们是两个不同的类。

您需要的是a.some.class

您的代码中有许多错误:

document.querySelector()

返回单个元素,不能对单个元素执行[0]。使用

document.querySelectorAll('a.some class')[0].href;

相反。

此外,类名不能有空格,每个空格都会分隔一个新类,因此与其匹配a.some class,不如匹配a[class="some class"]

class'some'和'class'现在是代码的两个类。类"some"可以。但是,不允许使用名为"class"的类。这是一个关键词。因此,可以生成"some_class"或"some class"或"SomeClass"。