Wrap()元素的子元素

wrap() a element children

本文关键字:元素 Wrap      更新时间:2023-09-26

我现在可以用一个链接将整个li元素包裹在有序列表中:

$(e).wrap('<a href="#" onclick="window.open(''/xyz/'');return false;"></a>');
HTML构造:

<li class="">
    <img src="http://img.example.com/images/bdb/2474566/600x338.jpg" class="xx">
</li>
<li class="">
    <img src="http://img.example.com/images/bdb/2474566/600x338.jpg" class="xx">
</li>
<a onclick="window.open('/something/');return false;" href="#">
    <li class="">
        <img src="http://img.example.com/images/bdb/2474566/600x338.jpg" class="xx">
    </li>
</a>

我怎么能管理它包装的链接只是围绕图像本身,而不是围绕整个列表元素?

试试这个,

$("#ul li img").wrap('<a href="#" onclick="window.open(''/xyz/'');return false;"></a>');

看看这是不是你想要的。关键是您应该在使e成为jQuery对象之前包装它。那么$e.html()就是你想要的。

var e = '<li class=""><img src="http://img.example.com/images/bdb/2474566/600x338.jpg" class="xx"></li><li class=""><img src="http://img.example.com/images/bdb/2474566/600x338.jpg" class="xx"></li>';
var $e = $("<ul>"+e+"</ul>");
$new.find("img").wrap('<a href="#" onclick="window.open(''/xyz/'');return false;"></a>');

演示。

唯一成功的方法:

var myImg = $(e).html();
$(e).html('<a href="#" onclick="window.open(''/xyz/'');return false;">' + myImg + '</a>‘);