我动态添加了div
元素,结构如下。
<div class="blogPost">
<a href="link/to/full_artical">
<h1>Some Heading</h1>
</a>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>
</div>
我想从a
元素中删除h1
包装,并将它们添加到父div
元素中。结果应该是:
<a href="link/to/full_artical">
<div class="blogPost">
<h1>Some Heading</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>
</div>
</a>
我希望jquery
可能有unwrap()
和wrap()
个函数组合。
提前致谢。
修改
尝试
$('.blogPost').wrap('<a href="'+$(this).children('a').attr('href')+'"></a>')
不工作。
答案 0 :(得分:1)
您可以使用.clone()
复制a
元素并将其存储在变量中。使用.unwrap()
删除a
的父h1
,并使用.wrap()
将复制的元素包裹在.blogPost
周围。
var clone = $("a").clone().children().remove().end();
$("h1").unwrap().parent().wrap(clone);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="blogPost">
<a href="link/to/full_artical">
<h1>Some Heading</h1>
</a>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>
</div>
&#13;
答案 1 :(得分:1)
另一种方式:
var href = $('.blogPost').children('a').attr('href');
$('.blogPost').wrap('<a href="'+href+'"></a>');
$('h1').unwrap();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="blogPost">
<a href="link/to/full_artical">
<h1>Some Heading</h1>
</a>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</p>
</div>
&#13;
答案 2 :(得分:0)
var link = $('a'),
heading = link.find('h1'),
blogPost = $('.blogPost');
blogPost.prepend(heading);
blogPost.wrap(link);
link.remove();