如何使用Javascript“单击”没有ID的按钮?

如何使用Javascript“单击”没有ID的按钮?,javascript,getelementsbyclassname,selectors-api,Javascript,Getelementsbyclassname,Selectors Api,我正在尝试单击没有ID的按钮。已尝试document.querySelectorAll和document.getElementsByClassName,但未成功 按钮代码: <input name="1X" type="2X" class="3X" style="width:160px;" value="4X" data-role="5X" role="5X" aria-disabled="false" tabindex="0"> 您可以使用元素名称: document.getEl

我正在尝试单击没有ID的按钮。已尝试document.querySelectorAll和document.getElementsByClassName,但未成功

按钮代码:

<input name="1X" type="2X" class="3X" style="width:160px;" value="4X" data-role="5X" role="5X" aria-disabled="false" tabindex="0">
您可以使用元素名称: document.getElementsByName“1X”[0]或document.querySelector“[name=1X]” 或任何属性: document.querySelector“[data role=5X]”

getElementsByClassName返回HTMLCollection,而不是单个元素。您可以访问数组样式中的单个元素: document.getElementsByClassName“3X”[0] getElementsByName也是如此


并确保属性值类、名称等以字母开头,而不是数字

可以使用CSS选择器语法通过以下方式选择文档中的任何元素:

querySelector'css selector'返回第一个匹配元素 queryselector all'css selector'返回所有匹配的元素。 要实际单击按钮,只需调用并单击元素,如下所示:

var button1X = document.querySelector('input[name="1X"]');
button1X.click();

有关querySelector/All的更多详细信息:

是的,您可以寻址DOM中的任何元素,不需要ID。但是,如果不显示HTML的外观,则无法说明如何处理。此外,querySelectorAll或getElementsByClassName有什么问题?我想可以处理document.getElementsByName'1X'[0]。假设在您尝试选择的元素之前没有任何其他同名元素。这可能是一个人为的示例,但该输入元素实际上不是按钮。type=2X无效。为什么说属性值必须以字母开头?你能解释一下你的推理吗?不是我,HTML规范是这么说的。你可以在这里找到命名规则:这听起来有点不对,所以在谷歌搜索了一下之后,看起来这个约束只适用于将类用作CSS选择器的情况:*CSS规范这样说。我认为遵循CSS规范是一个很好的实践。当然。然而,css规范只是指类名,而不是所有的html属性,这正是答案目前所暗示的。在现代html中,将class之外的任何属性设置为以非字母甚至ID开头的值都是完全可以接受的。