我正在尝试迭代下拉列表的某些值,但我想我的 .each 对我不起作用。下面是我尝试迭代的下拉值。
.cshtml
<select class="hqSelect">
<option value="-1">-Select HQ/NCM Company HQ</option>
<option value="142167">1-2-1 CLAIMS INC.</option>
<option value="183421">1-2-1 CLAIMS():-/</option>
<option value="154668">FARMERS INSURANCE</option>
<option value="183281">GLOBAL LOGIC INC</option>
<option value="183488">HQQQQQ</option>
<option value="183282">IYOGI</option>
<option selected="selected" value="183423">MY HQ 1</option>
<option value="183287">NOORHQRIYA</option>
<option value="183285">PRITIHQ</option>
<option value="183402">PT_COMPASSRIYA</option>
<option value="183296">RATNESHHQQ</option>
<option value="183300">TEST_ASSOCIATION_HQ</option>
</select>
现在在我的js上,我试图使用.each迭代到类 .hqSelect 的选择值,以便我可以根据我的逻辑更改所选值。但我的.each不起作用。以下是 .js 代码
$("#btnSearchPopup").on("click", function (e) {
var hqcheckedVal = false;
var companyId;
var branchCheckedVal = [];
var entityType = $("input[id*='hdnEntityType']").val();
var temp = '183488';
$('input[name="subscribe"]').each(function () {
if (this.checked) {
hqcheckedVal = this.checked;
companyId = $(this).closest('tr').find('#headquarterIdForSearch').text();
var companyName = $(this).closest('tr').find('#companyNameId').text();
//$(this).parents().find('.hqSelect option:selected').val(companyId);
//var curText = $(this).parents().find('.hqSelect option:selected').text();
//$(this).parents().find('.hqSelect option:selected').text().replace(curText, companyName);
}
});
$('.hqSelect').each(function () {
if (this.value === companyId) {
this.attr("selected", "selected");
return;
}
});
});
.hqSelect 在运行时看到选择值,但我仍无法迭代它们。
这是我缺少的东西。
答案 0 :(得分:4)
因为您只查询属于单个项目的hqSelect
类的元素。您需要在options
中获取select
。将代码更改为
$('.hqSelect option').each(function () {
if ($(this).val() === companyId) {
$(this).prop("selected", true);
return;
}
});
});
答案 1 :(得分:0)
您只需检查select
是否包含companyid
选择该值。
if($('.hqSelect option[value="' + companyId+ '"]').length > 0)
$('.hqSelect').val(companyId);