。每个不在jquery工作

时间:2016-08-30 06:29:08

标签: javascript jquery

我正在尝试迭代下拉列表的某些值,但我想我的 .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 在运行时看到选择值,但我仍无法迭代它们。

这是我缺少的东西。

2 个答案:

答案 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);