我有一个问题,我在多个选择控件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 ---');
没有给出想要的结果。
答案 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>');