wrap()一个元素子元素

时间:2014-06-14 08:54:24

标签: javascript jquery html css

我可以将整个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>

如何管理它以将链接包裹在图像本身周围而不是整个列表元素周围?

3 个答案:

答案 0 :(得分:0)

试试这个,

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

答案 1 :(得分:0)

唯一成功的方法:

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

答案 2 :(得分:0)

看看这是不是你想要的。关键是你应该在将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>');

演示HERE