JavaScript函数工作不正常

时间:2013-06-08 18:42:49

标签: javascript

我有2个js函数,在函数显示中我想获取当前可见元素的索引,但它总是警告0.如果函数navigate_right()已经改变,它似乎无法检查是否有p元素的ID。那么如何修改它以使其正常运行?

<html>
    <style type="text/css">
        p {
            border:1px solid black;
            width:100px;
            height:30px;
            display:none;
        }
    </style>

    <p style="display:block" id="p">some text1</p>
    <p>some text2</p>
    <p>some text3</p>
    <p>some text4</p>
    <p>some text5</p>
    <input type="button" value="left" onclick="show()" />
    <input type="button" value="right" onclick="navigate_right()" id="right" />

    <script>
        var p = document.getElementsByTagName("p");

        function navigate_right() {
            for (var i = 1; i < p.length; i++) {
                if (p[i - 1].style.display == 'block') {
                    p[i].style.display = 'block';
                    p[i - 1].style.display = 'none';
                    return;
                }
            }
        }

        function show() {
            var c = document.getElementsByTagName("p");
            var t;
            for (var i = 0; i < p.length; i++) {
                if (c[i].id = "vis") {
                    t = i;
                    alert(t);
                    return;
                }
            }
        }
    </script>    
</html>

编辑!应该有警报t; t表示当前段落的索引可见 现在工作!我纠正了一些愚蠢的错误。但无论如何,请大家帮忙

var p = document.getElementsByTagName("p");
function navigate_right() {
    for(var i = 1; i <p.length; i++){ 
        if(p[i-1].style.display == 'block') {
            p[i].style.display = 'block';
            p[i].id = "vis";
            p[i-1].style.display ='none';
            p[i-1].removeAttribute("id");
            return;
        }
    }
}
function show(){
    var c = document.getElementsByTagName("p");
    var t;
    for (var i = 0; i < p.length; i++) {
        if(c[i].id == "vis") { 
            t = i;
            alert(t);
            return;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

c[i].id = "vis"正在设置ID。赋值的计算结果为true,因此代码总是在循环第一次进入if主体。这就是为什么i总是0

您想要c[i].id === "vis"(或至少c[i].id == "vis")。