我有这个由javascript文件创建的HTML代码,这是不可理解的,因为它是使用GWT(Google Web Toolkit)创建的。
<img style="z-index: 6; width: 116px; position: absolute; left: 84px; top: 174px;" src="spiral/sample9.jpg">
<img style="z-index: 12; width: 197px; position: absolute; left: 0px; top: 161px;" src="spiral/sample1.jpg">
<img style="z-index: 1; position: absolute; left: 659px; top: 213px; width: 85px; opacity: 0.04; display: none;" src="spiral/sample17.jpg">
<img style="z-index: 1; position: absolute; left: 644px; top: 208px; width: 85px; opacity: 0.08; display: none;" src="spiral/sample18.jpg">
现在我需要在每张图片之前添加标记<a>
,使用src
作为图片src
的一部分。例如:“href="../tmp.php?title=sample9.mp4
”
任何线索我该怎么做?
我想要创建的输出是这样的:
<a href="../tmp.php?title=sample9.mp4"><img style="z-index: 6; width: 116px; position: absolute; left: 84px; top: 174px;" src="spiral/sample9.jpg"></a>
答案 0 :(得分:6)
使用jQuery,您可以使用wrap()
执行此操作:
$('img').each(function() {
$(this).wrap($('<a/>', {href: this.src}));
});
答案 1 :(得分:3)
你想要的是wrap并建立正确的href你可以使用正则表达式:
$('img').wrap(function(){
return $('<a>').attr(
'href',
'../tmp.php?title=' + this.src.match(/\/(.*?)\.jpg$/)[1] + '.mp4'
)
});
答案 2 :(得分:2)
除了你明显缺乏对querySelector
函数的理解之外,你还希望</img>
可以工作(它没有,它是一个空元素)......
以下是您应该如何处理的问题,并附有评论解释:
var imgs, l, i, img, par, a; // prepare some variables
imgs = document.getElementByTagName('img');
// get all images on the page
l = imgs.length; // save the number of images (for performance reasons)
for( i=0; i<l; i++) { // loop through all images
img = imgs[i]; // for easire access
par = img.parentNode; // get the parent of the current image
a = document.createElement('a');
// create a new link
a.href = "../tmp.php?title="+img.src.match(/([^\/.]+\.\w+$/)[1]+".mp4";
// extract the right part from the image source
// and put it into the link's href
par.insertBefore(a,img); // insert the link before the image
a.appendChild(img); // move the image so that it is inside the link
}