2

我在我的 Web 应用程序中使用 jquery 选择列表。我需要不时刷新它的内容,每次我这样做时,列表中的所有项目都是重复的。

我使用的代码是这样的:

addAssetsToModal = function(assets){
        $("#pckAssets").empty();
        assets.each(function(asset){
            $("#pckAssets").pickList("insert",
                {
                    value: asset._id._oid,
                    label: asset.name,
                    selected: isAssetOnDashboard(asset._id._oid)
                });
        });
    },

在添加项目之前,我想删除任何现有项目。

我的尝试:

$("#pckAssets").empty(); //doesn't work
$('#pckAssets option').remove();  //doesn't work

谢谢你。

4

1 回答 1

4

我在wiki中找不到任何清除元素的方法。

考虑插件从一个选择开始,但是为源和目标列表呈现两个不同的 ul-li。因此,如果您清除您的选择对象,您将清除选择,但不是已经呈现的 ul-li

我认为有两种方法:

  1. destroy 和 reinit:您可以销毁和重新初始化控件;结果列表将被清除(小部件必须实现销毁方法,并且确实如此)
  2. 清除列表:使用 jQuery 清除两个 ul-li:

第一种方式(我更喜欢这个):

$("#basic").pickList("destroy");
$("#basic").pickList();

第二种方式(有点hacky):

$('.pickList_sourceList li').remove();
$('.pickList_targetList li').remove();

这是两种方式的工作小提琴:http: //jsfiddle.net/IrvinDominin/GVKFB/

于 2013-06-05T10:31:03.457 回答