gpt4 book ai didi

javascript - jQuery wrap 函数 wrap 工作起来很奇怪

转载 作者:行者123 更新时间:2023-11-30 12:58:49 27 4
gpt4 key购买 nike

我偶然发现了 jQuery 的 wrap() 函数。

当我试图包装两个 div 标签时,它们之间有一些文本,而不是两个 div 之间没有文本时,它的行为不知何故不同。

j查询:

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>

这是一个 fiddle : http://jsfiddle.net/RfJN5/

第一个结果很令人惊讶,不是吗?我认为两个关闭的 div 都应该放在 .content1 之后,无论 div 之间是否有任何文本。

当然我知道自己添加关闭 div 来控制行为更安全,但这是某种错误还是只是对如何使用 jQuery wrap 的误解?

提前致谢!

最佳答案

按预期工作,您的 wrapper1 将是包裹 content1 的主要对象,因为您还没有关闭 innerwrapper1,jquery 会为您关闭它。如果你想用内部包装器包装然后使它成为一个对象,包装内容然后将内部包装器附加到包装器:

var wrapper1 = $('<div class="wrap1">something in between</div>'),
innerWrapper = $('<div class="innerwrap1" />');

$('.content1').wrap(innerWrapper);
wrapper1.append($('.innerwrap1'));

Example

关于javascript - jQuery wrap 函数 wrap 工作起来很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18083650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com