如何访问&当下拉通配符id存储在变量中时填充下拉列表

时间:2014-12-16 11:12:03

标签: jquery combobox

在我的情况下,我有常见的例程,填充下拉列表,当我调用该例程,然后我将下拉通配符ID传递给该例程,就像这样

以这种方式呼叫

populateDropwDown(0, 15, '$("select[id*=cboEarlyColHrs]")', '09');

    function populateDropwDown(startIdx, LastIdx, targetid, selectedVal) {
        var listItems = '';
        $(targetid).html("");
        for (var i = startIdx; i <= LastIdx; i++) {
            if (i == 0) {
                if (i == selectedVal)
                    listItems += "<option value='" + selectedVal + "'>00</option>";
                else
                    listItems += "<option value='00'>00</option>";
            }
            else {
                var ValueHrs = '', TxtData = '';
                ValueHrs = convertDateTo12Hrs(i, true);
                TxtData = convertDateTo12Hrs(i, false);

                if (TxtData == selectedVal)
                    listItems += "<option value='" + ValueHrs + "' option:selected>'" + TxtData + "'</option>";
                else
                    listItems += "<option value='" + ValueHrs + "'>'" + TxtData + "'</option>";
            }
        }
        $(targetid).html(listItems);
    }

我的主要问题是此行无效$(targetid).html(listItems);此行$(targetid).html(listItems);假设重新填写我的下拉列表,但此行无效。

当任何通配符id存储在变量中时请指导我,那么我如何使用该变量来重新填充我的下拉列表......任何想法都将受到赞赏。感谢

1 个答案:

答案 0 :(得分:0)

你传入一个jQuery调用来选择一个元素,但是作为一个字符串,所以它不会像那样工作。传递只是 ID的通配符部分并在函数中找到它会更加整洁......就像这样......

populateDropwDown(0, 15, 'cboEarlyColHrs', '09');

function populateDropwDown(startIdx, LastIdx, targetid, selectedVal) {
    var listItems = '';
    var $target = $("select[id*=" + targetid + "]");
    $target.html("");
    for (var i = startIdx; i <= LastIdx; i++) {
        if (i == 0) {
            if (i == selectedVal)
                listItems += "<option value='" + selectedVal + "'>00</option>";
            else
                listItems += "<option value='00'>00</option>";
        }
        else {
            var ValueHrs = '', TxtData = '';
            ValueHrs = convertDateTo12Hrs(i, true);
            TxtData = convertDateTo12Hrs(i, false);

            if (TxtData == selectedVal)
                listItems += "<option value='" + ValueHrs + "' option:selected>'" + TxtData + "'</option>";
            else
                listItems += "<option value='" + ValueHrs + "'>'" + TxtData + "'</option>";
        }
    }
    $target.html(listItems);
}

我还创建了$target变量,因此您不必两次搜索相同的元素。