Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery在div中查找每个动态生成的select,并在选项值为“”时添加要选择的类_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery在div中查找每个动态生成的select,并在选项值为“”时添加要选择的类

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

我在一个名为mydiv的div中动态生成了select字段。 我的每个select字段的id和类名也是动态生成的

我正试图根据该值向mydiv中的每个select元素添加一个名为redborder的类

例如,如果默认情况下选择了“未映射”,则其值在“我的第一次选择”中为空,则会将“红色边框”类添加到“我的第一次选择”中

这是我的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>
您可以使用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