因此,在我的具体情况下,我尝试让特定<a>
中的所有div
元素都具有属性target = "_blank"
,以便在新标签中打开它们。
但这可以适用于任何元素和任何属性。我只是想知道是否有办法用Javascript添加这些属性。
我的第一个想法是使用CSS,但后来我意识到这不是样式问题。
答案 0 :(得分:3)
在这种情况下,我不建议使用target="_blank"
。但您可以在链接上捕获click事件:
var links = document.getElementById('mydiv').getElementsByTagName('a');
for(var i = 0, len = links.length; i < len; i++) {
links[i].onclick = function(e) {
e.preventDefault();
window.location = this.getAttribute("href");
}
}
或jQuery
:
$('#mydiv a').click(function(){
window.location = $(this).attr('href');
return false;
});
答案 1 :(得分:2)
尝试myElement.setAttribute("yourattribute", "yourvalue");
答案 2 :(得分:2)
正如workabyte指出的那样,这可能是jQuery的工作......
$("#divId a").attr("target", "_blank");
答案 3 :(得分:2)
如果您使用jQuery,那么如果有某种方法可以选择相关的div,那么您可以在加载时执行此操作。
$(function(){
$('#divId').find('a').attr('atribute name','value for atribute');
});
答案 4 :(得分:1)
$('#divId').children('a').attr('attrName','attrVal');
答案 5 :(得分:1)
按document.getElementsByTagName('a')
或类似方式获取元素并使用setAttribute
函数。
但如果你想在任何地方都有这种行为,我建议你在html中设置它。
答案 6 :(得分:1)
以下是纯javascript中的一个小例子:
<div id="myDiv">
<a href="http://google.com">Google</a>
<a href="http://facebook.com">Facebook</a>
</div>
<button onclick="setLinksTarget()">Set target</button>
<script type="text/javascript">
function setLinksTarget(){
var div = document.getElementById('myDiv'),
links = div.getElementsByTagName('a'),
i;
for(i = 0; i < links.length; i+=1){
links[i].setAttribute('target', '_blank');
}
}
</script>
请注意,IE8及以下版本不支持setAttribute(根据http://www.w3schools.com/jsref/met_element_setattribute.asp)
您也可以使用jquery来完成这项工作,然后它就是一个班轮:
function setLinksTarget(){
$('#myDiv a').attr('target','_blank');
}