【问题标题】:Multiple append not working jQuery多个附加不起作用jQuery
【发布时间】:2014-08-05 20:09:35
【问题描述】:

当另一个组合框数据发生更改时,我需要用相同的信息填充两个组合框。

但是,当我使用 .append() 方法时,很明显它只执行最新的追加调用。代码如下:

    $('.sc-days').change(function () {
        var scedo = $('.sc-edo');
        var sclpo = $('.sc-lpo');
        var selected = $(".sc-days option:selected");
        scedo.append(selected);
        sclpo.append(selected);
    });

运行时,只会填充“sclpo”。你可以在这里看到结果。 http://jsfiddle.net/DF42s/

【问题讨论】:

  • 一个元素不能同时在两个地方。两个调用都进行了。第一个将其从当前位置移动到 scedo 元素,第二个将其移动到 sclpo 元素
  • 我只是觉得奇怪的是它选择了第二个下拉而不是第一个。
  • 这并不奇怪。这是您将 selected 元素移动到的最终位置。
  • 我认为它会起作用,因为您可以用许多其他语言完成此类作业。
  • DOM 是对象的树形结构。当您附加特定节点时,它会从其当前位置移除并重新定位到新位置。所以它不是真正的语言结构。它只是从 HTML 标记创建的对象结构,结构中的任何给定节点只能存在于树中的一个位置。

标签: javascript jquery jquery-append


【解决方案1】:

假设您打算附加原件的副本,请执行以下操作:

$('.sc-days').change(function () {
    var selected = $(".sc-days option:selected");
    $('.sc-edo').append(selected.clone());
    $('.sc-lpo').append(selected.clone());
});

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2017-10-28
    • 2018-08-14
    • 2014-05-31
    • 2014-07-31
    • 2018-06-14
    相关资源
    最近更新 更多