jQuery UI multiselect小部件-如何获取数组中的所有已检查数据

jQuery UI multiselect小部件-如何获取数组中的所有已检查数据,jquery,checkboxlist,Jquery,Checkboxlist,小部件控件来自: 如何从只有选中值的下拉列表框中获取值/名称对? 下面的代码有效,但只提供了“值”: var checkedIDs = $('#test').multiselect("getChecked").map(function () { return this.value; }).get(); Also once I remove all items: $('#test').children().remove();

小部件控件来自:

如何从只有选中值的下拉列表框中获取值/名称对? 下面的代码有效,但只提供了“值”:

      var checkedIDs = $('#test').multiselect("getChecked").map(function () {
                return this.value;
      }).get();

Also once I remove all items:
      $('#test').children().remove();

And add one back:
      $('#test').append($("<option></option>").attr("value", "value1").text("text1"));

How do I check that checkbox containing the value "value1"?
var checkedds=$('#test').multiselect(“getChecked”).map(函数(){
返回此.value;
}).get();
此外,一旦我删除所有项目:
$('#test').children().remove();
再加一回:
$('#test').append($(“”).attr(“value”,“value1”).text(“text1”);
如何选中包含值“value1”的复选框?
更新最终代码: 部分原因是它只选中循环中的一个复选框:

//1 - grab all data that is checked
var checkedGroupInstanceIDs = $(jqRunningJobID).multiselect("getChecked").map(function () {
    return { name: $(this).next().text().trim(), value: this.value };
}).get();

//2 - clean jqRunningJobID
$(jqRunningJobID).children().remove();

//3 - add checked data back into jqRunningJobID
for (var i = 0; i < checkedGroupInstanceIDs.length; i++) {
    TraceInfo("i/checkedGroupInstanceIDs[i].value: " + i + "/" + checkedGroupInstanceIDs[i].value);
    $(jqRunningJobID).append($("<option></option>").attr("value", checkedGroupInstanceIDs[i].value).text(checkedGroupInstanceIDs[i].name + " - added back")).val(checkedGroupInstanceIDs[i].value);

    //check that checkbox back (this doesnt work either)
    //            $("select").multiselect("widget").find(":checkbox[value='"+checkedGroupInstanceIDs[i].value+"']").each(function () {
    //                this.click();
    //            }); 
}
//1-获取所有已检查的数据
var checkedGroupInstanceId=$(jqRunningJobID).multiselect(“getChecked”).map(函数(){
返回{name:$(this.next().text().trim(),值:this.value};
}).get();
//2-清洁jqRunningJobID
$(jqRunningJobID).children().remove();
//3-将选中的数据添加回jqRunningJobID
对于(变量i=0;i

谢谢你

至于第一部分,试试看

var checkedIDs = $('#test').multiselect("getChecked").map(function () {
            return {name: $(this).next().text().trim(), value: this.value};
  }).get();
这将返回一个对象数组。因此,要获取第一个选定选项的“名称”(实际上是该选项的显示文本),您需要执行
检查edids[0]。name

第二部分,试试这个

$('#test').append($("<option></option>").attr("value", "value1").text("text1")).val('value1');

好。。。我只是想勾选包含checkedId[0]的复选框。value==“12345”例如:-)部分有效,因为如果我在循环中使用您的逻辑,它只勾选一个复选框。你差点就成功了!请查看我的最终代码更新,并查看是否错误。感谢you@Max添加了另一个编辑。如果您实际上不打算将所选项目的数组用于除重新填充它们之外的任何事情,那么我刚才添加的要简单得多。
$(jqRunningJobID).children().not(':selected').remove();
$(jqRunningJobID).multiselect("refresh");