0
4

3 回答 3

6

使用 jQuery,您可以使用它wrap()来执行此操作:

$('img').each(function() {
    $(this).wrap($('<a/>', {href: this.src}));
});
于 2013-05-30T16:03:41.023 回答
3

你想要的是包装和构建正确的href,你可以使用正则表达式:

$('img').wrap(function(){
    return $('<a>').attr(
        'href',
        '../tmp.php?title=' + this.src.match(/\/(.*?)\.jpg$/)[1] + '.mp4'
    )
});
于 2013-05-30T16:05:55.860 回答
2

除了你明显缺乏对querySelector函数的理解之外,你还期望</img>工作(它没有,它是一个 void 元素)......

以下是你应该如何去做,并附有评论来解释:

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
}
于 2013-05-30T16:08:55.380 回答