Javascript 无法在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',

在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', 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,并相应地进行处理。提前提供所有信息可能会有所帮助。