Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery在超链接中包装元素_Jquery - Fatal编程技术网

使用jQuery在超链接中包装元素

使用jQuery在超链接中包装元素,jquery,Jquery,我有: 在某个动作中,我想将整个动作包装成一个超链接,如: <div id="facebook"> <span class="fa-stack fa-lg"><i class="fa fa-circle-thin fa-stack-2x"></i><i class="fa fa-facebook fa-stack-1x"></i></span><br /><span id="soc

我有:



在某个动作中,我想将整个动作包装成一个超链接,如:

<div id="facebook">
    <span class="fa-stack fa-lg"><i class="fa fa-circle-thin fa-stack-2x"></i><i class="fa fa-facebook fa-stack-1x"></i></span><br /><span id="soc_fb"></span>
</div>

所以,我尝试的是:

<div id="facebook">
    <a href="http://www.facebook.com"><span class="fa-stack fa-lg"><i class="fa fa-circle-thin fa-stack-2x"></i><i class="fa fa-facebook fa-stack-1x"></i></span><br /><span id="soc_fb"></span></a>
</div>
$(“#facebook”).prepend(“”);

但这似乎没有任何作用。有什么想法吗?

您可以通过以下方式实现:

$("#facebook").prepend('<a href="#" title="Facebook" class="facebook_c">').append('</a>');
previous_dom=$(“#facebook”).html();
$(“#facebook”).html(“”)

您也可以使用
wrap

它只包装了
#facebook
div

演示:

prepend()
append()
添加完整的元素,而不仅仅是开始/结束标记

应该这样做:

$("#facebook").children().wrapAll('<a href="#" title="Facebook" class="facebook_c">');
$('#facebook').children().wrapAll('');

这将包装
div
本身,而不是内容(如OP的示例)。非常好。谢谢,这就是我想要的。。。这是漫长的一天!
$("#facebook").wrap('<a href="#" title="Facebook" class="facebook_c">');
$("#facebook").children().wrapAll('<a href="#" title="Facebook" class="facebook_c">');
$('#facebook').children().wrapAll('<a href="http://facebook.com"></a>');