Joh*_*ski 9 javascript dom cross-browser internet-explorer-7
根据SitePoint(和我自己的实验),"setAttribute()"的IE实现是错误的和不可靠的.
同样根据SitePoint,该name属性是只读的.
有没有其他方法可以设置name元素的属性?我需要这个用于单选按钮.如果可能的话,我想要一个没有jQuery的解决方案,因为我目前没有使用该库.
提前致谢!
Zoi*_*erg 12
这对我有用
alert(document.getElementById('testInput').name);
document.getElementById('testInput').name = 'someName';
alert(document.getElementById('testInput').name);
Run Code Online (Sandbox Code Playgroud)
同
<input type="radio" name="test" id="testInput" />
Run Code Online (Sandbox Code Playgroud)
站点点谎言正在谈论 \xe2\x80\x98name\xe2\x80\x99 的不同用法(请参阅安东尼的评论)。它不是只读的,只是存在一个长期存在的 IE 错误(直到 v7),其中在表单字段上设置 \xe2\x80\x98name\xe2\x80\x99 仅部分有效。单选按钮尤其不能正确接受它。
Microsoft 认可的解决方案(详细说明如下)是使用 IE 版本的 createElement 调用的一个可怕的错误功能来同时设置属性:
\n\nvar radio= document.createElement(\'<input type="radio" name="test" value="a" />\');\nRun Code Online (Sandbox Code Playgroud)\n\n也许更好的方法就是使用旧的innerHTML,例如:
\n\nvar div= document.createElement(\'div\');\ndiv.innerHTML= \'<input type="radio" name="test" value="a" />\';\nvar radio= div.firstChild;\nRun Code Online (Sandbox Code Playgroud)\n