gpt4 book ai didi

javascript - 无法在选项卡中显示下拉菜单?

转载 作者:行者123 更新时间:2023-11-28 11:01:47 27 4
gpt4 key购买 nike

我的 JavaScript 有问题,我无法正确显示我的标签页。
我无法在子标签中显示标签,您知道问题出在哪里吗?

这是我的 JavaScript 代码的一部分(完整代码在我的 jsfiddle 中):

function basla() {

var tabListItems = document.getElementById('tabs').children;
for ( var i = 0; i < tabListItems.length; i++ ) {
if ( tabListItems[i].nodeName == "LI" ) {
var tabLink = getFirstChildWithTagName1( tabListItems[i], 'A' );
var id = getHash1( tabLink.getAttribute('href') );
tabLinks[id] = tabLink;
contentDivs[id] = document.getElementById( id );
}
}

var i = 0;

for ( var id in tabLinks ) {
tabLinks[id].onclick = showTab1;
tabLinks[id].onfocus = function() { this.blur(); };
if ( i == 0 ) tabLinks[id].className = 'selected';
i++;
}

var i = 0;

for ( var id in contentDivs ) {
if ( i != 0 ) contentDivs[id].className = 'tabIcerik hide';
i++;
}
}

最佳答案

您只选择了 tabs 元素的直接子元素。你想要的是后代(包括嵌套元素):

var tabListItems =  document.getElementById('tabs').getElementsByTagName('*');

这将选择 ID 为 tabs 的元素内的所有元素(包括嵌套的 li),而不仅仅是第一个和第二个 li 以及 ul


下一个问题是子标签 li 的空 ID。在您的循环中,它将尝试设置 tabLinks[""],这当然是不可能的,并且会在到达该元素时中断循环的其余部分。您需要捕获这种情况并将其排除:

var id = getHash1( tabLink.getAttribute('href') );
if (id=="") continue;

最后,在选择任何选项卡之前,您在开始时会遇到显示错误。这是因为类 tabIcerik 没有为第一个 li 设置,除非您切换到另一个元素然后再返回它。您应该预先设置它或更改最后一个 for 循环中的以下行。

if ( i != 0 ) {contentDivs[id].className = 'tabIcerik hide';}
else {contentDivs[id].className = 'tabIcerik';}

关于javascript - 无法在选项卡中显示下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22410422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com