【问题标题】:Wrap a span around all children在所有孩子周围缠绕一个跨度
【发布时间】:2011-09-25 10:42:00
【问题描述】:

我正在尝试获取 div 的内容并在其周围包裹一个 span 并附加回 div。

从这里:

<div>
<a href="#">12</a>
Testing
</div>

到这里:

<div>
<span>
<a href="#">Hehhehe</a>
Testing
</span>
</div>

所以我尝试了这个:

var span = $(document.createElement('span'));

var contents = window.jQuery(this).children();

span.append(contents);

window.jQuery(this).append(span); // I am looping here but this is the div

但是,文本“Testing”总是在跨度之外!

我怎样才能让所有内容都在范围内?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    这应该做你想要的..

    $('div').wrapInner('<span>');
    

    http://jsfiddle.net/gaby/76ND5/的演示


    如果在您的代码中 this 指的是有问题的 div,那么您只需要

    $(this).wrapInner('<span>');
    

    【讨论】:

      【解决方案2】:

      .children() 不包括文本节点。使用.wrapInner 在元素周围添加跨度。

      【讨论】:

      • 谢谢 Rob,不知道这个函数存在!
      猜你喜欢
      • 1970-01-01
      • 2012-02-29
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      相关资源
      最近更新 更多