动态插入链接里面跨度标签使用JavaScript

问题描述:

我有这样的:动态插入链接里面跨度标签使用JavaScript

<span class="image"><img src="something.jpg"></span> 

我想将它转换到使用javascript:

<span class="image"><a href="domain"><img src="something.jpg"></a></span> 

它必须以隐藏使用JavaScript来实现会员链接。

我已经试过这个剧本,但它似乎没有工作:

function changespan() { 
find all <span> tags; 
for each <span> with class="image"{ 
URL = "http://domain.com" 
Create new link to URL; 
insert link into <span>; 
}  
} 

功能上传文件的script.js和我加载它以这种方式:

<script type="text/javascript" src="script.js"></script> 
<script type="text/javascript"> 
window.onload = changespan; 
</script> 

编辑:后这是解决了,我怎么可以解析我的网页找到这种格式的链接: 然后将此值分配给变量的URL。我需要能够将第一个路径分配给第二个URL_2,以此类推。

+1

你似乎错过了这个... – Paul 2013-03-11 13:40:58

+2

W帽子脚本语言是“查找所有标签”WishfulThinking language? – mplungjan 2013-03-11 13:41:12

+4

尝试'

这是如何实现它:

function changespan() { 
    var spans = document.querySelectorAll('span.image'); 
    for (var i = spans.length; i--;) { 
     var a = document.createElement('a'); 
     a.href = "http://domain.com"; 
     spans[i].appendChild(a).appendChild(a.previousSibling); 
    } 
} 

http://jsfiddle.net/Tqv76/1/

+0

我从来没有见过格式如此的'for'。它是否退出,因为当'我 - '到'0'时它是假的? – howderek 2013-03-11 13:48:42

+0

@howderek,是的,确切地说。 – dfsq 2013-03-11 13:49:14

+0

太棒了,谢谢! – howderek 2013-03-11 13:51:08

在这里,我把它翻译成JavaScript保持你的伪代码完整地

DEMO

window.onload=function() { 
    var spans = document.getElementsByTagName("span"); // or the newer querySelectorAll 
    for (var i=0;i<spans.length;i++) { 
    if (spans[i].className=="image") { 
     var link = document.createElement("a"); 
     link.href = "http://domain.com"; 
     link.setAttribute("rel","nofollow"); 
     link.className="someclass"; 
     link.innerHTML=spans[i].innerHTML; 
     spans[i].replaceChild(link,spans[i].getElementsByTagName('img')[0]); 
    }  
    } 
} 
+0

link.href =“http://domain.com”2等号:) – Syd 2013-03-11 13:59:35

+0

那么演示实际上不输出可点击的图像。他们应该是可点击的。 – Zox 2013-03-11 14:06:01

+0

请再看一遍。我在getElements中有一个拼写错误 - 我现在在范围 – mplungjan 2013-03-11 14:13:22