ReplaceWith 自动关闭标签

发布于 2024-10-11 11:56:52 字数 536 浏览 5 评论 0原文

我有 3 个 div,我想用另一个 div 的开始标签替换第一个 div,用结束标签替换第三个 div。这就是我的意思:

<div>1</div>
<div>2</div>
<div>3</div>

当我尝试用

替换(使用replaceWith())第一个 div 并用
替换第三个时,,jQuery 有点将其误解为:

<div class="foo"></div>
<div>2</div>
</div>

而我真正想要的是:

<div class="foo">
 <div>2</div>
</div>

提前谢谢您,

I have 3 divs and I want to replace the first div with an opening tag of another div and the third with the closing tag. This is what I meant:

<div>1</div>
<div>2</div>
<div>3</div>

When I tried to replace (using replaceWith()) the first div with <div class="foo"> and the third with </div>, jQuery somewhat misinterpret it as:

<div class="foo"></div>
<div>2</div>
</div>

While what I actually want is:

<div class="foo">
 <div>2</div>
</div>

Thank you in advance,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云归处 2024-10-18 11:56:52

您应该使用整个元素而不是 HTML 代码片段。另一种思考方式是:

// Get the div you want
var good = $('div:eq(1)');
// Remove the others
$('div').not(good).remove();
// Wrap the div you want
good.wrap('<div class="foo">');

如果第一个和最后一个之间有多个 div,您可以这样做:

$('div:first').replaceWith('<div class="foo">');
$('div.foo').nextAll('div').appendTo('div.foo');
$('div.foo :last').remove();

参见演示: http://jsfiddle.net/TBMHt/

You should work with whole elements rather than pieces of HTML code. Another way to think about it is:

// Get the div you want
var good = $('div:eq(1)');
// Remove the others
$('div').not(good).remove();
// Wrap the div you want
good.wrap('<div class="foo">');

If there are multiple divs between the first and the last, you may do this:

$('div:first').replaceWith('<div class="foo">');
$('div.foo').nextAll('div').appendTo('div.foo');
$('div.foo :last').remove();

See demo: http://jsfiddle.net/TBMHt/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文