jQuery clone() 不会复制

发布于 2024-09-24 18:05:06 字数 610 浏览 2 评论 0原文

考虑以下 HTML :

<a id="add" herf="#">add</a>

<div class="list">
    <select>
        <option>1</option>
        <option>2</option>
    </select>
</div>

和 Javascript :(

$('#add').click(function() {
    var copy = $('.list').last().clone();
    copy.appendTo('body');
});

或:http://jsfiddle.net/5A5pN/

如果如果您在单击添加之前选择了一个选择选项,您会注意到新添加的选择框仍然使用 1 作为其原始值,而不是 2。

有什么方法可以克服这个问题吗?

谢谢!

Consider the following HTML :

<a id="add" herf="#">add</a>

<div class="list">
    <select>
        <option>1</option>
        <option>2</option>
    </select>
</div>

And Javascript :

$('#add').click(function() {
    var copy = $('.list').last().clone();
    copy.appendTo('body');
});

(OR : http://jsfiddle.net/5A5pN/)

If you choose a select option before clicking Add, you'll notice the newly added select box still uses 1 as its original value, not 2.

Any ways to overcome this?

Thanks!

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

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

发布评论

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

评论(1

-黛色若梦 2024-10-01 18:05:06

是的!但你可以采取解决方法。像这样,

$('#add').click(function() {
    var orig = $('select',$('.list').last());
    var copy = $('.list').last().clone();
    $('select',copy).val(orig.val());
    copy.appendTo('body');
});

演示

YES! but you can do a workaround. like this,

$('#add').click(function() {
    var orig = $('select',$('.list').last());
    var copy = $('.list').last().clone();
    $('select',copy).val(orig.val());
    copy.appendTo('body');
});

demo

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