javascript - HTML 中的 button#classname 和 button.classname 有区别吗
问题描述
我是 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()
解决方案
.
选择器中字符串前面的A表示一个类。所以.class
将选择一个类为 的元素class
。
选择器中字符串前的A#
表示 ID。因此#foo
将选择 ID 为 的元素foo
。
所以
button#id.class
意思几乎相同
button.class
除了第一个也有一个 ID id
。
因为 ID 应该是唯一的,所以这
button#id.class
也应该等同于
#id
document.getElementsByClassName('classname')[0].click()
如果您只需要一个元素,请querySelector
改用 - 无需检索整个集合。
document.querySelector('.classname').click();
推荐阅读
- html - 通过 id vb.net 获取 html 元素
- symfony - Symfony Bundle 需要每个项目不同的文件
- python - python ffmpeg moov atom not found 处理输入时数据无效
- c++ - 随机打开的exe列表
- c - 使用 gcc 在 C 中将 float 转换为 unsigned int
- java - Minimax 算法井字棋错误
- java - 如何在android中将base64字符串转换为十六进制?
- bash - shell脚本中的替换
- applescript - 苹果脚本 | 提取最大整数并创建从0到最大整数的数字
- python - 如何使用 Python 接口在 Dymola 中获取模型的仿真时间?