在我的情况下,我有常见的例程,填充下拉列表,当我调用该例程,然后我将下拉通配符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存储在变量中时请指导我,那么我如何使用该变量来重新填充我的下拉列表......任何想法都将受到赞赏。感谢
答案 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
变量,因此您不必两次搜索相同的元素。