缠绕所有孩子的跨度

时间:2011-09-25 10:42:01

标签: javascript jquery

我正在尝试获取div的内容并在其周围包裹一个范围并追加到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

但是,“测试”一词总是超出范围!

我怎样才能让所有事情都在这个范围内?

2 个答案:

答案 0 :(得分:5)

这应该做你想要的......

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

http://jsfiddle.net/gaby/76ND5/

演示

如果在您的代码this中引用了相关div,那么您需要的只是

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

答案 1 :(得分:1)

.children()不包含文本节点。使用.wrapInner添加元素周围的范围。