【发布时间】:2018-01-07 23:39:12
【问题描述】:
我在名为 mydiv 的 div 中动态生成了选择字段。 我的每个选择字段的 id 和类名也是动态生成的。
我正在尝试根据值向 mydiv 中的每个选择元素添加一个名为 red-border 的类。
例如,如果默认选择未映射,则在我的第一个选择中其值为“”空,而不是类 red-border 将添加到我的第一个选择中
这是我的js,请帮忙
$('[class^="mydiv"]').find('option').each(function() {
var myvalue= $(this).val();
if (myvalue===" "){
$(this).addClass("red-border");
}else{
$(this).addClass("green-border");
}
});
<div class="mydiv" id="mydiv">
<select id="dynamically_generated_select_169" class="someclass169">
<option value=" ">Not mapped</option>
<option value="1">Saab</option>
<option value="2">VW</option>
<option value="3" selected>Audi</option>
</select>
<!-- Another select Each select and its options are all dynamically generated -->
<select id="dynamically_generated_select_170"class="someclass170">
<option value="1">Saab</option>
<option value=" ">Not mapped</option>
<option value="2">VW</option>
<option value="3" selected>Audi</option>
</select>
</div>
【问题讨论】:
-
如果您将
Var myvalue= $(this).val();修复为var myvalue= $(this).val();,您的代码可以正常工作您使用V 拼写了var -
@CarstenLøvboAndersen 不,它没有。他还需要将
.find('option')更改为.find('select') -
不,他已经对
[class^="mydiv"]进行了“选择”。 @Toastrackenigma -
@Berkay 嗯。如果您将其更改回
.find('option'),我的答案就会中断。^=运算符选择属性以值开头的所有元素,即在这种情况下,类以mydiv开头的所有元素。所以这只是用来选择mydiv。在mydiv内部,他尝试检查和比较每个option标记,而他应该尝试检查和比较每个select标记。 -
老兄,你在“select”周围画边框,他想在“option”周围画边框。见this。
标签: javascript jquery html