为什么忽略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
}
}
}
答案 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
的属性。