2015-05-28 4 views
-2

У меня есть этот фрагмент JQuery кода:изменения класса Li в JQuery

$("#cf_state_chosen.chosen-container.chosen-container-single div.chosen-drop ul.chosen-results li").each(function(i) { 
    console.log($("#cf_state_chosen.chosen-container.chosen-container-single div.chosen-drop ul.chosen-results li")[i]); 
}); 

Он будет выводить следующее:

<li class="active-result" style="" data-option-array-index="1">AL</li> 
<li class="active-result" style="" data-option-array-index="2">AK</li> 
<li class="active-result result-selected" style="" data-option-array-index="3">AZ</li> 
<li class="active-result" style="" data-option-array-index="4">AR</li> 

The result-selected изменения, когда пользователь выбирает другое состояние из select выпадающего списка коробка. Как я могу программно настроить это? Я вытащу состояние из другого поля ввода, которое заполняется с помощью вызова ajax jQuery.

Как я могу удалить result-selected, если он установлен для устаревшего выбора?

ответ

1

Для удаления, проверки, добавив класс есть три метода в JQuery

.removeClass().hasClass().addClass()

Попробуйте как этот

$("li[class*='result-selected']").each(function(){ 
    $(this).removeClass("result-selected"); 
}); 
$("#cf_state_chosen.chosen-container.chosen-container-single div.chosen-drop ul.chosen-results li").each(function(i) { 
    $(this).addClass("result-selected"); 
}); 
1

Удаление любых устаревших вариантов может быть достигнуто путем выбрав все элементы с классом «результат-выбранный», а затем удалив этот конкретный c деваха:

$('.result-selected').removeClass('result-selected'); 

И, предположим, что ваш <select> имеет id="stateSelector", вы можете:

$('#stateSelector').val('FL'); //<== setting the Select choice to the one with 'FL' value (value and not text!) 

Если нет, то вы можете выбрать его класс или что-нибудь, что может определить, что конкретные выбрать отдельно от любой другой , Просто следите за тем, чтобы использовать значение параметра, а не текст.

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