JavaScript:如何添加属性?
我试图添加一个单选按钮时检查目标属性的一些锚;但它不起作用。JavaScript:如何添加属性?
这里是我的代码:
<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解决方案)
谢谢。
编辑:Phew。完成它感谢所有的答案,这是我的最终代码:
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';
}
}
}
与您编辑的代码你_blank
每次设定的目标当点击单选按钮时。同样anchors
-collection不是在这种情况下使用的权利。
document.getElementById('input').onclick = function changeTarget() {
var n,a=document.links.length;
if(document.getElementById('input').checked){
for(n=0;n<a;n++){
document.links[n].target='_blank';
}
}
}
document.links
是包含在文档中的A
-elements其具有href
nohref
或-attribute集合对象。集合对象与数组非常相似,您可以使用索引引用它的成员(n
)。
您正在设置单选按钮的“checked”属性为函数。 “checked”属性是布尔值,它指示当前是否检查单选按钮。因此,该声明具有将其设置为true
的效果。你可能打算让它成为一个事件处理程序,所以应该是“onclick”而不是“checked”。
设置<a>
标签的“目标”属性不能像这样完成。您必须使用document.getElementsByTagName()
,然后遍历返回的节点列表,设置每个节点的“目标”属性。无需使用.setAttribute()
;只需在DOM节点上直接设置属性即可。
document.anchors
是一个集合,因此您需要对其进行迭代。您还需要onclick
事件 - 您可以确定是否检查输入。
document.getElementById('input').onclick = function changeTarget() {
if(this.checked) {
var anchors = document.getElementsByTagName("a");
for(var i = anchors.length - 1; i>=0; i--) {
anchors[i].target = '_blank';
}
}
}
根据MDN - document.anchors
只返回一个name属性的锚 - gEBTN将返回所有的锚。
或者:
document.getElementById('input').addEventListener("click", changeTarget, false);
我所知,checked
是一个属性,所以你不能一个函数分配给它。 您可以在#input
附加click事件改变锚target
:
document.getElementById('input').onclick = function()
{
var anchors = document.getElementsByTagName('a');
if(this.checked)
for(var i = 0, s = anchors.length; i < s; i++) {
anchors[i].target = '_blank';
}
else
for(var i = 0, s = anchors.length; i < s; i++) {
anchors[i].target = '_self';
}
}
更新:在我的代码#INPUT必须复选框
<input type="checkbox" id="input" />
http://*.com/questions/804256/how-do-i-add-target-blank-to-a-link-within-a-specified-div你可以检查这个 – mfadel 2012-04-14 12:11:39