HTML 中的按钮#classname 和 button.classname 之间有区别吗

Is there a difference between a button#classname and a button.classname in HTML

我是 JavaScript 的新手,我目前有一个脚本可以帮我按下一个按钮。我在一个网站上试过,效果很好。现在我在另一个网站上做了完全相同的事情,但它不起作用。我在 HTML 中发现的不同之处在于,当我用元素选择器将鼠标悬停在它上面时,一个按钮的格式为 button#id.class,而另一个只是 button.class。两者也有一些不同的属性,但我认为大多数只是网站依赖。

所以这是第一个按钮的 HTML:

<button id="id" class="classname" type="button">Button</button>

这里是第二个按钮的HTML,svg数据我觉得没有必要,所以去掉了,以后有需要的可以补上:

<button class="classname" aria-label="aria label" title="title"><svg></svg></button>

这里是 JavaScript 实际按下按钮的行,至少是第二个:

document.getElementsByClassName('classname')[0].click()

在select或class中的字符串前的.。因此 .class 将 select 具有 class 的 class 的元素。

selector 中字符串前的 # 表示 ID。所以 #foo 将 select 一个 ID 为 foo.

的元素

所以

button#id.class

的意思几乎相同
button.class

除了第一个还有一个 ID id

因为 ID 应该是唯一的,所以这个

button#id.class

也应该等同于

#id
document.getElementsByClassName('classname')[0].click()

如果您只需要一个元素,请改用 querySelector - 无需检索整个集合。

document.querySelector('.classname').click();