Javascript 无法在for循环中设置所选值
在for循环中更改下拉列表的选择时遇到问题。 这是我的密码:Javascript 无法在for循环中设置所选值,javascript,jquery,Javascript,Jquery,在for循环中更改下拉列表的选择时遇到问题。 这是我的密码: var costbases = $('[id$="cost_basis"]'); costbases.each(function() { var costoption = $('option:selected', this).attr('value'); if ( costoption == '2' ) { $('this option[value="0"]').prop('selected',
var costbases = $('[id$="cost_basis"]');
costbases.each(function() {
var costoption = $('option:selected', this).attr('value');
if ( costoption == '2' ) {
$('this option[value="0"]').prop('selected', true);
}
});
我很确定这个选择器是问题所在,但我无法找出正确的语法:
$('this option[value=“0”]”)您可以使用方法查找子项并使用索引获取子项:
$(this).find('option[value="0"]').eq(0).prop('selected', true);
请显示您的所有相关代码可能
$(this)。find('option[value=“0”]')
会起作用什么是html?$('this option[value=“0”]')
应该是$('option[value=“0”]”,this)
-this
是一个对象,但您将其作为字符串放置(因此它正在查找DOM元素
)为什么eq(0)
是必需的?find()
返回元素的集合。因此,我们需要使用eq(0)
获取第一个,但只有一个值为0
。在您的评论之后,我尝试了使用和不使用eq()
。我想如果只有一个值为0的条目,那么无论哪种方式,它都会返回相同的结果。如果您的HTML恰好只有一个条目,那么它是相同的。问题中没有HTML,因此我们必须假设可能有多个HTML,并相应地进行处理。提前提供所有信息可能会有所帮助。