无法修改含多连字符ID的input,如何用JavaScript动态修改其值?
解决带连字符ID的input动态赋值问题
哦,我一眼就发现你代码里的小问题啦!你给document.getElementById()传了一个数组['name-with-annoying-hyphens'],但这个API只接受纯字符串格式的ID参数,数组肯定会导致调用失败哦~
其实带连字符的ID完全没问题,getElementById对包含特殊字符(比如连字符、下划线)的ID支持很好,只要你传对参数类型就行。
正确的写法:
直接把ID以字符串形式传进去,不用加数组包裹:
<input id="name-with-annoying-hyphens" type="number" /> <script> // 去掉外层的数组括号,直接传字符串ID document.getElementById('name-with-annoying-hyphens').value = "10"; </script>
另一种可选方法(用querySelector):
如果你习惯用CSS选择器的写法,也可以用querySelector,记得在ID前加#:
<input id="name-with-annoying-hyphens" type="number" /> <script> document.querySelector('#name-with-annoying-hyphens').value = "10"; </script>
这两种写法都能正常给这个带连字符的input赋值,你可以直接测试~
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

