Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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循环遍历对象值并根据值更改css_Javascript_Loops_Object - Fatal编程技术网

Javascript循环遍历对象值并根据值更改css

Javascript循环遍历对象值并根据值更改css,javascript,loops,object,Javascript,Loops,Object,我正在编写一个脚本,它循环遍历一个对象,首先获取元素,然后尝试循环遍历元素的值,以便更改CSS。以下是脚本: $(document).ready(function() { var carParts = { doors: { flDoor: 'LOCKED', blDoor: 'LOCKED', frDoor: 'LOCKED', brDoor: 'LOCKED' } } var lights = 'OFF'; if

我正在编写一个脚本,它循环遍历一个对象,首先获取元素,然后尝试循环遍历元素的值,以便更改CSS。以下是脚本:

$(document).ready(function() {
var carParts = {
    doors: {
        flDoor: 'LOCKED',
        blDoor: 'LOCKED',
        frDoor: 'LOCKED',
        brDoor: 'LOCKED'
    }
}
var lights = 'OFF';
if (lights === 'OFF') {
    $('.lights').css("display", "none");
}

for(var i in carParts.doors) {
    for(var key in carParts.doors) {
        var value = carParts.doors[key];
        console.log(value);
        if (value === 'locked') {
            $('.'+i+'-open').css("display", "none");
        }
    }
}
})
所以我想循环遍历carparts.door对象,得到实际的flDoor、blDoor、frDoor、brDoor。在最后一行jquery中需要这些名称来指定正确的类名。除非实际值被锁定,否则我不希望该行被触发。我是javascript新手,还在学习。非常感谢您对代码的任何反馈。

锁定的
是大写的。你是在用小写字母比较。试试这个:

if (value === 'LOCKED') {
    //
}
为什么有两个循环?一个就够了

HTML
var灯='OFF';if(lights=='OFF')
应该是
if(true)
;)
并且您似乎正在将大写字母
LOCKED
for in
循环中的字符串
LOCKED
进行比较:JavaScript是区分大小写的,您需要注意这一点(或者在字符串比较中使用
.toLowerCase()
)。现在,在循环语句中使用适当的大小写,我希望它一个接一个地进行检查并更改css。它看起来好像正在通过,如果任何一个值被锁定,它将为所有内容分配一个显示:无样式。同样,谢谢,上面的David,你说了同样的话,我评论了其他人是否有任何其他想法。这非常有效,谢谢。正如我所说的,javascript有点新,所以为代码找出最佳方法以及如何编写代码仍然很困难。这个解决方案解决了所有问题,如果我能提高评分,我会的。
<div class="flDoor-open">flDoor</div>
<div class="blDoor-open">blDoor</div>
<div class="frDoor-open">frDoor</div>
<div class="brDoor-open">brDoor</div>
$(function () {
    var carParts = {
        doors: {
            flDoor: 'OPENED',
            blDoor: 'OPENED',
            frDoor: 'LOCKED',
            brDoor: 'LOCKED'
        }
    };

    for (var key in carParts.doors) {
        var value = carParts.doors[key];

        if (value === 'LOCKED') {
            $('.' + key + '-open').css("display", "none");
        }
    }
});