JavaScript:如何添加属性?

标签 javascript

当选中单选按钮时,我尝试将目标属性添加到某些 anchor ;但是它不起作用。

这是我的代码:

<body>
<ul id="main">
    <li><a href="https://www.google.co.uk/">Google</a></li>
    <li><a href="http://www.youtube.com/">YouTube</a></li>
    <li><a href="https://twitter.com/">Twitter</a></li>
</ul>
<input type="radio" name="input" id="input" />
<script type="text/javascript">
document.getElementById('input').checked = function changeTarget() {
    document.anchors.setAttribute('target', '_blank');
}
</script>
</body>

我做错了什么? (注意:我不需要 JQuery 解决方案)

谢谢。

编辑:唷。感谢所有答案,完成了,这是我的最终代码:

    document.getElementById('input').onclick = function changeTarget() {
    if(this.checked) {
        var b = document.getElementsByTagName('a');
        for (a = 0; a < b.length; a++) {
            b[a].target = '_blank';
        }
    }
}

最佳答案

您正在将单选按钮的“checked”属性设置为一个函数。 “checked”属性是一个 bool 值,指示当前是否选中单选按钮。因此,该语句具有将其设置为 true 的效果。 。您可能打算将其作为事件处理程序,因此可能应该是“onclick”而不是“checked”。

设置 <a> 的“目标”属性标签不能这样完成。您必须使用document.getElementsByTagName()然后遍历返回的节点列表,设置每个节点的“target”属性。无需使用.setAttribute() ;只需直接在 DOM 节点上设置属性即可。

关于JavaScript:如何添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153449/

相关文章:

javascript - 使用带有后台 WebView 的网页抓取的 Android 登录应用程序

Javascript window.open 高度不会像我设置的那样高,为什么?

JavaScript 变量在 for 循环内发生变化

javascript - 使用 javascript 在服务器上移动文件

javascript - jQuery - 链接多个 .next() 方法的替代方法

javascript - Angular 4 Web 动画在 Safari 中重置

javascript - Ng-Repeat,如何测试最后一个 ng-show 元素

javascript - 如何在保持 jQuery 透明度的同时滑动?

javascript - angularJS显示base64图像

javascript - 从客户端向服务器发送日期