在jQuery中改变li类

时间:2015-05-28 00:44:02

标签: javascript jquery

我有这段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>

当用户从result-selected下拉框中选择其他状态时,select会发生变化。我该如何以编程方式预设?我将从另一个输入字段中拉出状态,该字段通过ajax jQuery调用填充。

如果碰巧为过时的选择设置了result-selected,我怎么能删除它?

2 个答案:

答案 0 :(得分: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 :(得分:1)

通过选择&#34;结果选择&#34;选择所有元素,可以删除任何过时的选项。 class,然后删除这个特定的类:

$('.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!)

如果没有,您可以按类或任何可以识别该特定选择的任何内容选择它。请注意使用选项的值而不是文本。