2016-08-30 3 views
1

Я пытаюсь перебрать некоторые значения выпадающего списка, но я думаю, что мой .each не работает для меня. Ниже приведены выпадающие значения, через которые я пытаюсь выполнить итерацию..each не работает в jquery

.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

Почему бы вам просто не сказать '$ ('. HqSelect'). Val (companyId)'? – nnnnnn

+0

'$ ('. HqSelect'). Each' это означает, что каждый элемент с классом' hqSelect' вы хотите, чтобы этот класс был прав? вам нужно '$ ('. hqSelect option'). each' или' $ ('. hqSelect'). find ('option'). each' – guradio

+0

Я просто хочу перебирать значения параметров. так что я могу изменить выбранный текст и значение на основе моей логики. – Yash

ответ

4

Поскольку вы запрашиваете только элементы с классом hqSelect который является единственным item.You нужно получить options внутри select .Кнопки вашего код

$('.hqSelect option').each(function() { 
        if ($(this).val() === companyId) { 
         $(this).prop("selected", true); 
         return; 
        } 
       }); 
    }); 
+2

Это должно быть '$ (this) .attr (...' – nnnnnn

+0

@nnnnnn Были изменены –

+0

use '$ (this) .prop (" selected ", true);' –

0

Вы можете просто проверить, если select содержит companyid выберите это значение.

if($('.hqSelect option[value="' + companyId+ '"]').length > 0) 
    $('.hqSelect').val(companyId); 
Смежные вопросы