2

我想使用 jQuery .wrap() 函数从特定的起点和终点将 div 包裹在一系列 html 标签周围。例如,这是我的 HTML 文档现在的样子:

我当前的 HTML 结构:

<div class="single-post">
    <img src="" />
    <p></p>
    <p></p>
    <blockquote></blockquote>
    <p></p>
</div>

我想从上面围绕这些元素包装一个带有“新”类的 div:

<p></p>
<p></p>
<blockquote></blockquote>
<p></p>

实际上,这就是我的最终结果应该是这样的:

<div class="single-post">
    <img src="" />
    <div class="new">
        <p></p>
        <p></p>
        <blockquote></blockquote>
        <p></p>
    </div>
</div>
4

2 回答 2

3

好的,假设 img 始终是独行侠,您可以执行以下操作:

jQuery:

$('.single-post > img').siblings().wrapAll('<div class="new" />');

你也可以这样

$('.single-post').children(':not(.exclude)').wrapAll('<div class="new" />');
于 2013-01-22T07:32:22.080 回答
1

<div class="single-post">如果应该总是跳过里面的第一个孩子:

$('.single-post')
    .children()
    .slice(1)
    .wrapAll('<div class="new" />');

这里,第一个参数 to.slice()表示起点(第二个元素)。您还可以使用第二个参数指定终点:

.slice(1, 4) // will select elements 2 and 3

起点和终点可以是负数,表示距离终点的位置

也可以看看:jQuery.slice()

于 2013-01-22T08:01:38.703 回答