For循环被忽略了

时间:2014-01-03 00:58:29

标签: javascript html css

为什么忽略xyz循环?这是一个小提琴http://jsfiddle.net/B99CD/ 请记住,这是我不能提及的专有内容管理系统内部 由于某种原因,小提琴不运行该功能。发生的事情是标签不会被设置为无,因此所有看起来都是活动的。有什么建议吗?

编辑存在的字段集。我不能分享这部分代码。遗憾。

在ie10和ff26.0中进行测试

function tabAction(tab) {

    var numberOfTabs = document.getElementsByTagName("li");
    var x = 0;
    var xyz = 0;
    //alert(tab);
    debugger;
    var loopEnd = document.getElementsByTagName("fieldset").length;

    document.getElementsByTagName("fieldset")[tab].style.display = "block";
    document.getElementsByTagName("fieldset")[tab].style.clear = "both";
    document.getElementsByTagName("li")[tab].className = "active";

    if(tab > 5) {
        document.getElementsByTagName("li")[tab].className = "active"; // show task tab
        for(x = 6; x < loopEnd; x++) {
            document.getElementsByTagName("fieldset")[x].style.display = "block";
            document.getElementsByTagName("fieldset")[x].style.clear = "both";
        }
    }

    for(xyz = 0; xyz < numberOfTabs; xyz++){
        alert(xyz);
        if (xyz !== tab) {
            document.getElementsByTagName("li")[x].className = "none";
        }     
    }

    for(x = 0; x < loopEnd; x++)  {
        if (x !== tab) {
            document.getElementsByTagName("fieldset")[x].style.display = "none";
        }
        if (x > 5){
            document.getElementsByTagName("fieldset")[x].style.display = "none";// change this
        }
    }
} 

3 个答案:

答案 0 :(得分:3)

numberOfTabs永远不会设置。

我无法从您的代码中获得值应该是什么。看看你的HTML,我猜是7

答案 1 :(得分:2)

我猜numberOfTabs应该是 document.getElementsByTagName(“li”)。length

numberOfTabs 外,不应该 document.getElementsByTagName(“li”)[ x ]中的 x .className =“none”; xyz

我认为使用 document.getElementsByTagName(“li”)来获取所有标签并不是一个好主意,因为当有其他&lt时,你会收到错误; li&gt; 标记在HTML文档中。我建议你用一个元素包装你的标签并设置它的id,你可以使用 document.getElementById('xxxx')。getElementsByTagName(“li”)

答案 2 :(得分:0)

我在这一行收到错误:

document.getElementsByTagName("fieldset")[tab].style.display = "block";

HTML中没有fieldset个元素,因此document.getElementsByTagName("fieldset")[tab]未定义,您无法设置undefined的属性。