在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js使用foreach遍歷,然后對dom進行style.marginLeft操作

js使用foreach遍歷,然后對dom進行style.marginLeft操作發(fā)現(xiàn)沒有用,普通for循環(huán)可以,為什么呢?

<div class="parent">
    <div class="child" data-index="0" style="background-color: red;">1</div>
    <div class="child" style="background-color: rebeccapurple;">2</div>
    <div class="child" style="background-color: yellowgreen;">3</div>
</div>

js代碼如下:

(function(){
    var child_arr = document.getElementsByClassName("child");
    var len = child_arr.length;
    var parent = document.getElementsByClassName("parent")[0];
    var move_width = parent.offsetWidth;
    var index = 0; // 保存當前顯示的div索引
    function animate() {
        var childArr = [].slice.call(child_arr);
        if (index === len) {
            index = 0;
        }
        childArr.forEach(function(item, key) {
            if (index - key >= 0) {
                child_arr[key].style.marginLeft = '-' + move_width * (index - key) + 'px';
            } else {
                child_arr[key].style.marginLeft = move_width * (key - index) + 'px';
            }
        })
        index++;
    }
    clearInterval(t);
    var t = setInterval(animate, 1000);
})()

我這種寫法就不行,為什么呢?我依然是對Dom元素操作的啊,有沒有人知道原因的?求教

回答
編輯回答
壞脾滊

k ik 這兩個在哪里定義的。是不是屬性名沒改,控制臺應該有報錯了。你要寫的是key

2017年9月29日 12:40
編輯回答
默念

好吧,我傻逼了。
我發(fā)現(xiàn)本地代碼里進行style賦值時里面還加了分號,不過這里給出的代碼沒加分號,可能我測得不仔細。
本地代碼其實是:

child_arr[key].style.marginLeft = '-' + move_width * (index - key) + 'px;' // 這里是賦值,不能有分號

需要把分號刪了就可以了。。。
233333333333333333333333.

2017年3月6日 22:26