Javascript 如何将链接包装到div中的所有图像?

Javascript 如何将链接包装到div中的所有图像?,javascript,jquery,image,hyperlink,Javascript,Jquery,Image,Hyperlink,我有这样的想法: <img class="photo" src="www.example.com" /> <img class="photo" src="www.example2.com" /> <img class="photo" src="www.example3.com" /> $('.photo').wrapAll('<a>'); 我需要得到这个: <a href="www.example.com" class="link"&

我有这样的想法:

<img class="photo" src="www.example.com" />
<img class="photo" src="www.example2.com" />
<img class="photo" src="www.example3.com" />
$('.photo').wrapAll('<a>');

我需要得到这个:

<a href="www.example.com" class="link">
    <img class="photo" src="www.example.com" />
</a>
<a href="www.example2.com" class="link">
    <img class="photo" src="www.example.com2" />
</a>
<a href="www.example3.com" class="link">
    <img class="photo" src="www.example.com3" />
</a>

我需要添加链接、与每个图像的SRC代码相同的href和一个类

我试着这样做:

<img class="photo" src="www.example.com" />
<img class="photo" src="www.example2.com" />
<img class="photo" src="www.example3.com" />
$('.photo').wrapAll('<a>');
$('.photo').wrapAll('');
但它甚至不起作用。
我做错了什么?

$('img')。wrap(“”)
可以很好地工作。

$('img')。wrap(“”)
可以很好地工作。

因为HREF都是不同的,所以您需要使用

$('img.photo')。每个(函数(){
var$img=$(此),
href=$img.attr('src');
$img.wrap(“”);
});

请注意,这并不是您想要的,因为它将获取所有元素,并用一个锚标记将它们包装起来。如果您使用的锚点不是每个元素都需要不同的href,那么锚点将自行工作并单独包装每个元素。

因为href都是不同的,所以您需要使用

$('img.photo')。每个(函数(){
var$img=$(此),
href=$img.attr('src');
$img.wrap(“”);
});
请注意,这并不是您想要的,因为它将获取所有元素,并用一个锚标记将它们包装起来。如果您使用的锚点不需要为每个元素使用不同的href,则锚点将自行工作并单独包装每个元素。

尝试以下方法:

$('.photo').before('<a href="www.example3.com" class="link">');
$('.photo').after('</a>');
$('.photo')。在('')之前;
如果你想

$( '.photo' ).each( function() {
    var mySrc = $( this ).attr( "src" );
    $( this ).before( '<a href="' + mySrc + '" class="link">' ) );
    $( this ).after( '</a>' ) );
});
$('.photo')。每个(函数(){
var mySrc=$(this.attr(“src”);
$(本)。在('')之前;
});
我希望这对你有用…

试试这个:

$('.photo').before('<a href="www.example3.com" class="link">');
$('.photo').after('</a>');
$('.photo')。在('')之前;
如果你想

$( '.photo' ).each( function() {
    var mySrc = $( this ).attr( "src" );
    $( this ).before( '<a href="' + mySrc + '" class="link">' ) );
    $( this ).after( '</a>' ) );
});
$('.photo')。每个(函数(){
var mySrc=$(this.attr(“src”);
$(本)。在('')之前;
});

我希望这对您有用…

$('.photo').wrapAll('不起作用。图像是用jquery加载的,带有:d_row.append(img);
$('.photo').wrapAll('不起作用。图像是用jquery加载的,带有:d_row.append(img);听起来很不错,但在我的代码中似乎不起作用。这可能是因为网站上没有加载图像,它们是通过javascript逐个添加的:d_row.append(img);有什么帮助吗?谢谢。如果您要动态添加,请在添加它之前将其包装,或者在将其添加到DOM之前简单地构造要添加的HTML以包含链接。我用此代码和其他回复尝试过它,但没有人对图像做任何操作。它没有添加任何内容。听起来很不错,但在我的应用程序中似乎不起作用代码。这可能是因为图像没有加载到网站上,它们是通过javascript逐个添加的:d_row.append(img);有什么帮助吗?谢谢。如果您要动态添加它,请在添加它之前对其进行包装,或者在将其添加到DOM之前简单地构造要添加的HTML以包含链接。我已经用此代码和其他回复尝试过了,但没有人对图像做任何操作。它没有添加任何内容。我的图像在添加后会加载javascriptd_row.append(img);所以这不好用。我的图像在d_row.append(img)之后加载了javascript;所以这不好用。