2015-08-04 2 views
1

Я знаю, как перебрать несколько вариантов одного окна выбора:Как выполнить повторение нескольких вариантов множественного выбора?

$("#selectId > option").each(function() { 
alert(this.text + ' ' + this.value); 
}); 

Однако, как бы я перебор всех полей выбора одного конкретного класса, а затем перебрать все его параметры. Я хотел бы использовать $(this).

Это то, что я мог сделать до сих пор, что, очевидно, не работает.

$('.mappingSelectField').each(function(){ 
     var selectName = $(this).attr("name"); 
     var preselectValue = ""; 
     $(this('> option')).each(function() { // THIS LINE NEEDS TO BE ADJUSTED 
      if ($(this).val().toLowerCase().replace(/ /g, '') == selectName.toLowerCase().replace(/ /g, '')){ 
       preselectValue = $(this).val(); 
      } 
     }); 
     $(this).val(preselectValue); 
    }); 

Все, что я хочу, чтобы заранее выбрать подходящий вариант, тот, который имеет такое же значение, как имя выберите поле.

+0

Что вы хотите achevie? – Satpal

+0

Я хочу сравнить выбранное имя со всеми опциями выбора, чтобы я мог предварительно выбрать предлагаемое значение. Это предназначено для отображения полей. –

+2

'$ (this) .find ('option'). Each (function() {' –

ответ

3

У вас есть неправильный селектор, чтобы найти элементы элементов в каждой итерации элементов select.

Вы использовали: $(this('> option'))

что неправильно. вам нужно найти элементы элементов в текущем контексте выбора this с помощью селектора поиска. Вы должны использовать:

$(this).find('option').each(function() { //iterate over options in current select 
    //rest code. 
}); 

или

$('option',this).each(function() { //iterate over options in current select 
    //rest code. 
}); 
+0

. Ваш ответ правильный. Это то, что я искал. –

+0

@OndrejTokar: рад, что это помогает :) –

Смежные вопросы