Javascript Jquery在div中查找每个动态生成的select,并在选项值为“”时添加要选择的类
我在一个名为mydiv的div中动态生成了select字段。 我的每个select字段的id和类名也是动态生成的 我正试图根据该值向mydiv中的每个select元素添加一个名为redborder的类 例如,如果默认情况下选择了“未映射”,则其值在“我的第一次选择”中为空,则会将“红色边框”类添加到“我的第一次选择”中 这是我的js,请帮忙Javascript Jquery在div中查找每个动态生成的select,并在选项值为“”时添加要选择的类,javascript,jquery,html,Javascript,Jquery,Html,我在一个名为mydiv的div中动态生成了select字段。 我的每个select字段的id和类名也是动态生成的 我正试图根据该值向mydiv中的每个select元素添加一个名为redborder的类 例如,如果默认情况下选择了“未映射”,则其值在“我的第一次选择”中为空,则会将“红色边框”类添加到“我的第一次选择”中 这是我的js,请帮忙 $('[class^="mydiv"]').find('option').each(function() { var myvalue= $(this
$('[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>
您可以使用change with,它将检查值是否未映射,然后添加一个类红色边框。第二个是代码中的一个小错误Var应该是Var:
$'mydiv select'。在'change'上,函数{
var myvalue=$this.val;
如果myvalue=={
$this.removeClass'green-border'.addClassRedBorder;
}否则{
$this.removeClass'red-border'。addClassgreen-border;
}
};
$document.readyfunction{
$'mydiv select'。触发'change';
};
.红边{
边框:3倍纯红;
}
.绿色边界{
边框:3倍纯绿;
}
未映射
萨博
大众汽车
奥迪
//另一个选择每个选择及其选项都是动态生成的
萨博
未映射
大众汽车
奥迪
您的代码有两个问题: 您是按选项标记而不是选择标记查找的-您无法设置选项标记的样式,并且它们没有指定的.val。 您使用的是Var而不是Var-JS,它区分大小写 请注意,您的代码仍将仅在第一次加载时运行。如果希望动态更新,则需要将其放入事件处理程序中,以处理类似onchange的事件 $'[class^=mydiv]'。查找“选择”。每个函数{ var myvalue=$this.val; 如果myvalue== { $this.addClassred-border; }否则 { $this.addClassgreen-border; } }; .红边{ 边框:实心1pxF00; } .绿色边界{ 边框:实心1px0f0; } 未映射 萨博 大众汽车 奥迪 萨博 未映射 大众汽车 奥迪
您的div具有un Id mydiv,因此您应该将其用于您选择的选择器。然后,您尝试查找选项,但您说您需要选择输入。只需将选择器置于“选择”位置 应该是这样的:
$('#mydiv').find('select').each(function(){
var myvalue = $(this).Val();
})
试试这个
不能添加选项边框颜色
我们用选项“背景”和“边框”来尝试您的代码,以便在chnage上进行选择
//此示例适用于每个选项
$'.mydiv选择选项'.eachfunction{
var myvalue=$this.val;
如果myvalue=={
$this.addClassred;
}否则{
$this.addClassgreen;
}
};
//本例介绍了更改选择
$'.mydiv_2 select'.on'change',函数{
var myvalue=$this.val;
如果myvalue=={
$this.removeClass'green-border'.addClassRedBorder;
}否则{
$this.removeClass'red-border'。addClassgreen-border;
}
};
瑞德先生{
背景:f00;
}
格林先生{
背景:0f0;
}
.红边{
边框:实心1pxF00;
}
.绿色边界{
边框:实心1px0f0;
}
每个选项的示例
未映射
萨博
大众汽车
奥迪
萨博
未映射
大众汽车
奥迪
变革范例
未映射
萨博
大众汽车
奥迪
萨博
未映射
大众汽车
奥迪
如果您修复了Var myvalue=$this.val,那么您的代码运行良好;to var myvalue=$this.val;您已将var拼写为V@CarstenLøvboAndersen不,不是。他还需要将.find'option'改为.find'select'不,他已经用[class^=mydiv]接受了select@Toastrackenigma@Berkay呵呵。如果你把答案改回,我的答案就错了。找到“选项”。^=运算符选择属性以值开头的所有元素,即在本例中,类以mydiv开头的所有元素。所以这只是用来选择mydiv。在mydiv中,他试图检查和比较每个选项标记,而他应该检查和比较每个选择标记。伙计,你们在选择周围画边框,他想在选项周围画边框。请参阅。如果文档就绪时有空值,客户端应该等待用户更改选择以设置红色边框?@Berkay-添加了文档就绪的触发器。希望这有帮助。在我看来;不需要这样做,但无论如何它现在可以工作了:如果运行代码段,只有绿色边框可以工作。@Jeremy-是一个小遗漏。更新日期:这并不能解决希望基于其值将类应用于选择元素的问题,但您已经为该值创建了ifs。因此,我试图引导您根据值使用if。当您选择项目时。您可以轻松地检查它们的值,并应用您想要的任何样式。您不能添加选项类。用jquery搜索它,我们可以。请参阅。@Berkay抱歉,我的意思是border类添加选项border