未在前置选择选项中显示的文本添加了VIA jQuery

时间:2016-05-06 19:42:00

标签: jquery

我有一个问题,我在多个选择控件VIA jQuery中添加了一个选项。该选项确实显示为corectly但没有文本,此外,该选项不会显示在chrome检查器中。

如何在选项中设置文字?

$('.muffler-type-control').on('change', function(){
    $('.muffler-type-control').each(function(){
        if(!$(this).find('option[text="--- Please Select ---"]')){
            $(this).prepend('<option value="">--- Please Select ---</option>')
                   .text('--- Please Select ---');
        }
    });

    var selectedValue = $(this).val();

    $('.muffler-type-control').val('');
    $('.container-muffler-type-control').removeClass('required');

    $(this).val(selectedValue);
    $(this).parent().addClass('required');
    $(this).find("option").eq(0).remove();
});

以上总是正确地为每个控件添加选项,但选项中没有文字 - 我需要它说“---请选择---”

我试过了:

$(this).prepend('<option value="">--- Please Select ---</option>');    
$(this).prepend('<option value=""></option>').text('--- Please Select ---');    
$(this).prepend('<option value="">--- Please Select ---</option>').text('--- Please Select ---');
没有给出想要的结果。

2 个答案:

答案 0 :(得分:0)

我没有弄清楚为什么这不起作用,但我认为这与测试是否存在选项对象存在[无论选项是否存在,对象存在]但这就是我的工作方式围绕它:

$('.muffler-type-control').on('change', function(){

    $('.muffler-type-control').each(function(){

        var myOption = $(this).find('option').eq(0).text();

        if(myOption != ' --- Please Select --- '){
            console.log('adding select');
            $(this).prepend('<option value=""> --- Please Select --- </option>');
        }            

    });

    var selectedValue = $(this).val();
    $('.muffler-type-control').val('');
    $('.container-muffler-type-control').removeClass('required');
    $(this).val(selectedValue);
    $(this).parent().addClass('required');
    $(this).find("option").eq(0).remove();


});

答案 1 :(得分:-1)

为什么prepend块在onchange块中?只有在选择框发生变化时才会发生....

无论如何,这是一个小例子,它只能用于前置:

https://jsfiddle.net/zc1uLycc/

$('#test').prepend('<option value="">--- Please Select ---</option>');