jQuery将textarea值插入div而不影响子元素

发布于 2024-11-06 12:01:39 字数 522 浏览 0 评论 0原文

我试图在 div .yes 内插入 textarea #ta 的 html 值,而不影响或删除具有类 .no 的子 div。目前,它正在删除 div 的所有内容,包括类 .no 的所有子元素。检查 jsfiddle http://jsfiddle.net/f2rPz/

<div class="yes">test
    <div class="no">no</div>
    <div class="no">no</div>
</div>
<textarea id="ta"></textarea>

$('#ta').keyup(function() {
    var x = $(this).val();
    $('.yes').html(x)
})

I'm trying to insert the html value of textarea #ta inside div .yes without affecting or removing the children divs with class .no. Currently it's removing all content of of the div including all children elements with class .no. Check jsfiddle at http://jsfiddle.net/f2rPz/.

<div class="yes">test
    <div class="no">no</div>
    <div class="no">no</div>
</div>
<textarea id="ta"></textarea>

$('#ta').keyup(function() {
    var x = $(this).val();
    $('.yes').html(x)
})

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

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

发布评论

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

评论(3

赠意 2024-11-13 12:01:39

查看我的版本,它将替换 "test" 文本,但保留 .no div。

基本上可以归结为:您希望在 DOM 外部保留 .no div 的副本,然后在替换 .yes 的内容后重新附加它们。

$('#ta').keyup(function() {
    var no = $('.yes > .no').remove();
    var x = $(this).val();
    $('.yes').html(x).append(no);
});

如果您不想影响所有子级,请将选择器替换为 '.yes > *' 只会选择所有直接子级。

http://jsfiddle.net/3PA6H/1/

Check out my version which will replace the "test" text, but keep the .no divs.

Basically it boils down to: You want to keep a copy of the .no divs outside the DOM, then reattach them after replacing the content of .yes.

$('#ta').keyup(function() {
    var no = $('.yes > .no').remove();
    var x = $(this).val();
    $('.yes').html(x).append(no);
});

If you want to not affect all children, then replace the selector with '.yes > *' which will only select all the direct children.

http://jsfiddle.net/3PA6H/1/

↙厌世 2024-11-13 12:01:39

请改用 append 函数:

$('#ta').keyup(function() {
    var x = $(this).val();
    $('.yes').append(x)
})

Use the append function instead:

$('#ta').keyup(function() {
    var x = $(this).val();
    $('.yes').append(x)
})
羁绊已千年 2024-11-13 12:01:39

html() 替换为 append() 即可实现此目的。

更新:这是显示结果的 jsFiddle 分支: http://jsfiddle.net/X7YQU/

Replacing html() with append() will do this.

Update: Here is the jsFiddle fork showing the result: http://jsfiddle.net/X7YQU/

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