0

我正在通过 json 在客户端获取 4 个下拉列表的页面加载数据。

我需要能够将下拉列表中的内容保存到一个变量中,以供以后在页面上使用。

你看,list2 依赖于 list1。因此,当我在 list1 中选择一个值时,我需要过滤掉 list 2 中的相应值。

完成后,我将用过滤后的内容替换 list2 的全部内容。

如果用户需要进行“重做”,我只需将完整值再次移动到下拉列表中,直到它再次被过滤掉。

问题是我想确定如何将值正确保存(因为它们将是一个 id 和文本值)只是一个 var 变量。

更进一步,当我需要将完整列表放回实际下拉列表中时,执行此操作的 jQuery 语法是什么?

为了收集我发现过滤匹配的值的集合,我假设我只有一个 foreach 循环,但我如何将它分配给我的过滤下拉列表?这基本上就像在服务器端的 C# 中将值添加到下拉列表中一样。

非常感谢...

4

2 回答 2

0

如果您想实际获取这些值并将它们放入一个数组中,您可以尝试这样的事情。

function getValues(dropDownId) {
    var values = new Array();
    $("#" + dropDownId).children().each(function (i, element) {
        values[i] = {id: element.id, value: element.value};
    });
    return values;
}

function setValues(dropDownId, values) {
    var dropDown = $("#" + dropDownId);
    for (var i = 0; i < values.length; i++) {
        var newItem = $("<option></option>");
        newItem.prop("id", values[i].id);
        newItem.text(values[i].value);
        dropDown.append(newItem);
    }
}

当你想获取值时,只需调用 getValues,传入选择元素的 id。保存返回的值,然后调用 setValues 并传入相同的 id 以及保存的数据。

于 2012-07-06T01:42:59.160 回答
0

你的问题不清楚,但如果我没看错,你需要将 a 的当前内容保存<select/>到一个变量中,以便以后使用它。

看看jQuery .clone()


请参阅此工作小提琴示例!显示 clonedoption被附加到 adiv

假设这个 HTML:

<select id="foobar">
  <option value="1">01</option>
  <option value="2">02</option>
  <option value="3">03</option>
  <option value="4">04</option>
  <option value="5">05</option>
</select>

您可以select使用以下方法获取内容:

$(function() {
  var $selectContents = $('#foobar option').clone();
});
于 2012-07-06T01:19:13.830 回答