使用jQuery突出显示所选选项

时间:2013-05-30 20:15:18

标签: javascript jquery

我正在尝试从下拉列表中突出显示所选值,但是当您从列表中选择另一个项目时,它也会突出显示。它会在您选择时继续添加到其他项目。如果选择新的<option>,如何将其从旧版<option>中删除?看看我的JSFiddle here。我知道我应该使用if/else语句,但不确定如何。

4 个答案:

答案 0 :(得分:1)

请参阅demo

var highlighted="";
$(function () {
    $('#places').change(function () {
        //if there is a previous selection, then remove highlight class
        if(highlighted!="")
            $('select option:contains(' + highlighted+ ')').removeClass('highlight')
        //store the current selection in temp var
        highlighted=$(this).val();
        $('select option:contains(' + $(this).val() + ')').addClass('highlight')
    })
})

答案 1 :(得分:1)

首先从其他元素中删除该类。

福克:http://jsfiddle.net/CzuGF/

第3行:

$('select option').removeClass('highlight');

答案 2 :(得分:1)

此代码的工作方式类似于魅力,如果您有多个select

,则可以重复使用
$(function () {
    $('select').change(function () { //Can change the selector to you input class if you want, doesnt matter
        $(this).find('.highlight').removeClass('highlight');
        $(this).find('option:contains(' + $(this).val() + ')').addClass('highlight');
    })
})

小提琴:http://jsfiddle.net/t4Vhd/5/

$(function () {
    $('select').change(function () { //Can change the selector to you input class if you want, doesnt matter
        $(this).find('option:contains(' + $(this).val() + ')').addClass('highlight').siblings().removeClass('highlight');
    })
})

答案 3 :(得分:0)

在添加类之前,在代码中添加此行。

$(this).find(".highlight").removeClass("highlight");

演示:http://jsfiddle.net/tymeJV/t4Vhd/2/