作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要选择另一个元素中的一个元素(表单中的一个按钮)。我通常会使用 jQuery;看起来像这样:
element = $('#webform-client-form-1812 input[name="op"]');
但是我不能在这个项目上使用 jQuery,所以我尝试了:
element = document.getElementById("webform-client-form-1812").getElementsByName("op")[0];
但是我得到了错误:
Uncaught TypeError: document.getElementById(...).getElementsByName is not a function.
这似乎是解决方案对其他人来说显而易见的尴尬问题之一。但是我已经彻底研究过了,我无法发现我的错误。有人可以帮助我吗?
最佳答案
getElementsByName
只是 document
上的一个方法 - 与 getElementsByClassName
不同,它不能在单个元素上调用。
改用 querySelector
,您可以使用与 jQuery 中相同的 CSS 选择器:
const element = document.querySelector('#webform-client-form-1812 input[name="op"]');
尽可能使用 querySelector
或 querySelectorAll
而不是嵌套的 getElement...getElement
调用可能会更好 - 它不会不必要地冗长并且代码更清晰。您可以使用 CSS 选择器字符串轻松表达很多复杂规则,否则编码会非常笨拙。
关于Java脚本;选择嵌套元素会引发 "not a function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470870/
我是一名优秀的程序员,十分优秀!