如何包装兄弟元素?

问题描述 投票:0回答:3

以下标记将注入一些额外的元素(例如:包含一些闪存的div)。

如何动态地将所有p标签包装在一个div中并在其上方添加一个按钮以切换新制作的div

<div class="post">
  <p>blquehrgéoqihrteoijth</p>
</div>

<div class="post">
  <p>blquehrgéoqihrteoijth</p>
  <p>blquehrgéoqihrteoijth</p>
  <p>blquehrgéoqihrteoijth</p>
  <p>blquehrgéoqihrteoijth</p>
</div>
jquery wrapping
3个回答
2
投票

为简单起见,我会做以下事情:

$('.post').prepend("<h3 class='showText'>biography</h3>\n<div class='toggle'>");
$('.post').append("</div>");

应该做你需要的。

编辑1:在此处添加了cballou的注释代码,以便于阅读:

$j('h3').live('click', function() {
  $j(this).toggleClass('hideText').slideToggle(300);
});

1
投票

我只是提取现有的HTML并将其包装(作为文本),然后重新插入。

$('.post').each( function() {
    $(this).html('<h3 class="showText">biogrpahy</h3><div class="toggle">'
                  + $(this).html()
                  + '</div>');
});

0
投票
$j('.post').wrapAll("<div class='toggle'></div>");
$j('.toggle').before('<h3 class="showText">bibliography</h3>');
$j('h3').live('click',function(){
    $j(this).toggleClass('hideText');
    $j('.toggle').slideToggle(300);
});
© www.soinside.com 2019 - 2024. All rights reserved.