Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在选项卡中显示下拉菜单?_Javascript_Html_Css - Fatal编程技术网

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

Javascript 无法在选项卡中显示下拉菜单?,javascript,html,css,Javascript,Html,Css,我的JavaScript有问题,无法正确显示选项卡。 我无法在子选项卡中显示选项卡,您知道问题出在哪里吗 以下是我的JavaScript代码的一部分,完整的代码在我的: 您只选择tabs元素的直接子元素。您需要的是包含嵌套元素的子体: var tabListItems = document.getElementById('tabs').getElementsByTagName('*'); 这将选择具有ID选项卡的元素内的所有元素,包括嵌套的lis,而不仅仅是第一个和第二个li以及ul 下一个

我的JavaScript有问题,无法正确显示选项卡。 我无法在子选项卡中显示选项卡,您知道问题出在哪里吗

以下是我的JavaScript代码的一部分,完整的代码在我的:


您只选择tabs元素的直接子元素。您需要的是包含嵌套元素的子体:

var tabListItems =  document.getElementById('tabs').getElementsByTagName('*');
这将选择具有ID选项卡的元素内的所有元素,包括嵌套的lis,而不仅仅是第一个和第二个li以及ul

下一个问题是子选项卡li的空id。在您的循环中,它将尝试设置tabLinks[],这当然是不可能的,当它到达该元素时,将中断循环的其余部分。您需要捕获该案例并将其排除:

var id = getHash1( tabLink.getAttribute('href') );
if (id=="") continue;
最后,在选择任何选项卡之前,开始时会出现显示错误。这是因为没有为第一个li设置类tabIcerik,除非切换到另一个元素,然后返回到它。您应该预先设置它,或者在最后一个for循环中更改以下行


你能更好地解释一下你的问题是什么:当你做什么的时候,你期望发生什么,发生什么而不是你期望发生什么?element.children只选择直接的子元素,不选择嵌套的子元素,除非我弄错了。您需要递归地获取所有子项。我想用JSFIDLE中的现有代码做类似于此站点的事情?比如tab:Doz@Dorianmas@scenia说,看起来你想选择你的孩子。目前,您的代码不会影响css的优势、用法及其链接。非常感谢,如果标题显示不正确,我如何更改css?@Jo_bast您的确切意思是什么?它应该如何表现?如果您看到“关于javaScripts”选项卡中的文本未正确显示,则这是一段烦人的代码。标题不是从文本开头开始的,而是从中间开始的@Scenia@Jo_bast哦,那个。这是因为标签太大,会将其他元素向后推。您可以通过将div.tabIcerik上的填充增加到类似于0.8em的值来解决这个问题。您需要确保其正常工作的确切数字可能取决于浏览器和屏幕分辨率,因此使用更像1em甚至1.5em的设备也不会太糟糕。
var id = getHash1( tabLink.getAttribute('href') );
if (id=="") continue;
if ( i != 0 ) {contentDivs[id].className = 'tabIcerik hide';}
else {contentDivs[id].className = 'tabIcerik';}