Javascript 动态地将目标属性添加到已知div元素中预先存在的锚标记集合中
我有一个id=“images”的div div包含一些图像,每个图像都包装在没有目标属性的锚标记中 我想在我的页面中插入一个脚本,该脚本会提取对这些锚元素的引用,并向它们(在运行时)添加target=“new”属性,以便在单击它们时在新窗口中打开它们 我不想硬编码锚标记上的目标属性。这是部署后的解决方法。我没有在这个应用程序中使用jqueryJavascript 动态地将目标属性添加到已知div元素中预先存在的锚标记集合中,javascript,Javascript,我有一个id=“images”的div div包含一些图像,每个图像都包装在没有目标属性的锚标记中 我想在我的页面中插入一个脚本,该脚本会提取对这些锚元素的引用,并向它们(在运行时)添加target=“new”属性,以便在单击它们时在新窗口中打开它们 我不想硬编码锚标记上的目标属性。这是部署后的解决方法。我没有在这个应用程序中使用jquery <div id="images"><a href=""><img src="foo.png" /></a>
<div id="images"><a href=""><img src="foo.png" /></a>...etc </div>
…等等
无需jQuery!您可以使用本机DOM方法轻松做到这一点:
// Find all the anchors you want to modify
var anchors = document.getElementById('images').getElementsByTagName('a'),
i = anchors.length;
// Add the target to each one
while(i--) anchors[i].target = "new";
可以遍历div中的所有锚元素,首先查找div本身,然后使用以下方法:
var-imagesDiv=document.getElementById('images'),
images=imagesDiv.getElementsByTagName('a');
对于(变量i=0,n=images.length;i
函数替换所有Lanchors(源、stringToFind、stringToReplace){
//示例调用:body=replaceAllAnchors(body,为什么不能使用jQuery?我在这里为其他使用google的人添加了这个。
这是循环中的一行代码:
$('#images a').each(function(){ $(this).attr('target', '_blank'); });
现在不是更简单了吗?如果可以,请使用jQuery。谢谢Prestaul,这正是我要找的。谢谢CMS,这正是我要找的。Prestaul只差几秒钟就击败了你:)
function replaceAllAnchors(Source,stringToFind,stringToReplace){
//sample call: body=replaceAllAnchors(body,'<a ','<a target="_blank" ');
var temp = Source;
var replacedStr="";
var index = temp.indexOf(stringToFind);
while(index != -1){
temp = temp.replace(stringToFind,stringToReplace);
replacedStr=replacedStr+temp.substr(0,temp.indexOf("/a>")+3);
temp=temp.substr(temp.indexOf("/a>")+3);
index = temp.indexOf(stringToFind);
}
replacedStr=replacedStr+temp;
return replacedStr;
}
$('#images a').each(function(){ $(this).attr('target', '_blank'); });