我有多个选择选项。如果我选择特定的select
元素,例如id="a"
,我希望将option
值设置为0
。
$('#form option:selected').each(function() {
var id = $(this).attr('id');
if(id == 'a') {
val = 0;
} else {
val = 10;
}
console.log(val);
});
我得到undefined
值。
答案 0 :(得分:1)
您的jQuery无法运行的部分原因是因为val
是undefined
变量。您应该使用this.value
来设置/获取option
元素的值。
根据您的评论,如果id
位于select
元素上,则会显示为您想要的内容:
$('form option:selected').each(function() {
var id = $(this).parent().prop('id');
this.value = id === 'a' ? 0 : 10;
});
值得一提的是,您只需使用.val()
方法即可简化代码。它将迭代元素,您需要做的就是返回一个值:
$('form option:selected').val(function () {
return $(this).parent().prop('id') === 'a' ? 0 : 10;
});