我偶然发现了 jQuery 的 wrap() 函数。
当我试图包装两个在它们之间有一些文本的 div 标签时,它的行为会有所不同,而不是在两个 div 之间没有文本。
jQuery:
var wrapper1 = '<div class="wrap1">something in between<div class="innerwrap1">';
$('.content1').wrap(wrapper1);
var wrapper2 = '<div class="wrap2"><div class="innerwrap2">';
$('.content2').wrap(wrapper2);
生成的 HTML 是这样的:
<div class="wrap1">
something in between
<div class="innerwrap1"></div> <!-- wtf? -->
<div class="content1">Lorem</div>
</div>
<div class="wrap2">
<div class="innerwrap2">
<div class="content2">Ipsum</div>
</div>
</div>
这是一个小提琴:http: //jsfiddle.net/RfJN5/
第一个结果相当令人惊讶,不是吗?我认为两个关闭 div 都应该放在 .content1 之后,无论 div 之间是否有任何文本。
当然,我知道自己添加关闭 div 来控制行为更安全,但这是某种错误还是只是对如何使用 jQuery wrap 的误解?
提前致谢!