我有以下HTML代码:
<div class="someclass">
<ul>
<li><a title="someFile" href="somefolder/somefile.pdf">File Name</a>
<li><a title="someFile2" href="somefolder/somefile2.pdf">File 2</a>
</ul>
</div>
我希望链接成为:
<li><a title="someFile" href="somefolder/somefile.pdf" target="_blank">File Name</a>
<li><a title="someFile2" href="somefolder/somefile2.pdf" target="_blank">File 2</a>
这可以用纯javascript完成,没有jquery或其他库吗?
我使用getElementByID使用jquery做了类似的事情,但是这里的元素没有id,它所拥有的只是类&#34; someclass&#34;由于各种原因,我不想改变HTML。我想要做的只是在页面底部插入小javascript,这将在使用以下文件加载文档时执行:
window.onload="myFunction()";
这项任务可以按照我想要的方式完成吗?
答案 0 :(得分:4)
你只需要写
var matches = document.querySelectorAll('a');
for (var i = 0; i < matches.length; i++) {
matches[i].setAttribute('target', '_blank');
}
<强> Fiddle 强>
答案 1 :(得分:3)
答案 2 :(得分:2)
试试这个:
var pageLinks = document.getElementsByTagName("a");
for(var x in pageLinks) {
pageLinks[x].target = "_blank";
}
答案 3 :(得分:1)
试试这个:
var prnt = document.querySelector('.someclass ul').childNodes;
for(var i=0;i<prnt.length;i++){
if(prnt[i].nodeType == 1){
prnt[i].firstChild.setAttribute('target','_blank');
}
}
输出:
<div class="someclass">
<ul>
<li><a title="someFile" href="somefolder/somefile.pdf" target="_blank">File Name</a>
<li><a title="someFile2" href="somefolder/somefile2.pdf" target="_blank">File 2</a>
</ul>
</div>
答案 4 :(得分:-2)
看看这里。
http://www.w3schools.com/js/js_htmldom_nodes.asp
如上所示,这是您只能使用Javascript
var para = document.createElement("p"); //create p element
var node = document.createTextNode("This is new."); //create text element
para.appendChild(node); //append text to p
var element = document.getElementById("div1");
element.appendChild(para); //append p to somewhere in your page