- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用最简单的基本 Javascript 制作标签(这绝对强制我使用简单的 Javascript,没有 JQuery 或任何东西,我'仅限于为这个元素使用简单的 Javascript)。我几乎已经准备好一切,我已经验证了我的 HTML 和 CSS,并检查了我的文件中是否存在任何运行时错误。选项卡标题显示。
我唯一的问题是标签标题不可点击,我的标签内容也没有显示。我做错了什么?
这是一个 fiddle :https://jsfiddle.net/1qr0qmzk/
这是我的脚本:
//Tab initialization
window.addEventListener("load", function() {
makeTabs(".tabs")
});
function makeTabs(selector) {
tab_lists_anchors = document.querySelectorAll(selector + "li a");
divs = document.querySelector(selector).getElementsByTagName("div");
for (var i=0; i < tab_lists_anchors.length; i++){
if (tab_lists_anchors[i].classList.contain('active')) {
divs[i].style.display = "block";
}
}
for (i=0; i < tab_lists_anchors.length; i++){
document.querySelector(".tabs li a")[i].addEventListener('click', function(e){
for (i=0; i < divs.length; i++){
divs[i].style.display = "none";
}
for (i=0; i < tab_lists_anchors.length; i++){
tab_lists_anchors[i].classList.remove("active");
}
clicked_tab = e.targed || e.srcElement;
clicked_tab.classList.add('active');
div_to_show = clicked_tab.getAttribute('href');
document.querySelector(div_to_show).style.display = "block";
});
}
}
这是我的标签结构:
<div class="tabs">
<ul> <!-- Tab Headings -->
<li><a href="#" class="active">Tab 1</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 3</a></li>
<li><a href="#">Tab4</a></li>
</ul>
<!-- Tab Contents -->
<div id="tab1">
<h1>Tab 1</h1>
<p>Lorem Ipsum. Contents of tab 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices ante vel elementum tristique. In suscipit nisi et purus cursus, eget tincidunt nunc mattis. Duis commodo mollis interdum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In efficitur massa et ex gravida imperdiet. Phasellus finibus arcu ut erat dignissim efficitur. Curabitur quam ipsum, volutpat et elit et, sollicitudin malesuada mi. Praesent eget dui dui.</p>
</div>
<div id="tab2">
<h1>Tab 2</h1>
<p>Contents of tab 2. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices ante vel elementum tristique. In suscipit nisi et purus cursus, eget tincidunt nunc mattis. Duis commodo mollis interdum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In efficitur massa et ex gravida imperdiet. Phasellus finibus arcu ut erat dignissim efficitur. Curabitur quam ipsum, volutpat et elit et, sollicitudin malesuada mi. Praesent eget dui dui.</p>
</div>
<div id="tab3">
<h1>Tab 3</h1>
<p>Contents of tab . Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices ante vel elementum tristique. In suscipit nisi et purus cursus, eget tincidunt nunc mattis. Duis commodo mollis interdum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In efficitur massa et ex gravida imperdiet. Phasellus finibus arcu ut erat dignissim efficitur. Curabitur quam ipsum, volutpat et elit et, sollicitudin malesuada mi. Praesent eget dui dui.</p>
</div>
<div id="tab4">
<h1>Tab 4</h1>
<p>Contents of tab 4. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices ante vel elementum tristique. In suscipit nisi et purus cursus, eget tincidunt nunc mattis. Duis commodo mollis interdum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In efficitur massa et ex gravida imperdiet. Phasellus finibus arcu ut erat dignissim efficitur. Curabitur quam ipsum, volutpat et elit et, sollicitudin malesuada mi. Praesent eget dui dui.</p>
</div>
</div>
这是我的 CSS:
.tabs{
overflow: hidden;
clear: both;
}
.tabs ul{
list-style-type: none;
margin: 0 0 0 0;
bottom: -1px;
position: relative;
}
.tabs li{
float: left;
margin: 0 0;
}
.tabs a{
display: block;
padding: 5px 10px;
background-color: #EEE;
color: #000;
text-decoration: none;
margin: 0;
border-top: 1px solid #CCC;
border-bottom: 1px solid #CCC;
border-right: 1px solid #DDD;
border-left: 1px solid #DDD;
font: 13px/18px verdana, arial, sans-serif;
}
.tabs a.active{
background-color: #fff;
border-bottom: 1px solid #fff;
}
.tabs div{
clear: both;
border: 1px solid #CCC;
padding: 10px;
font-family: verdana;
font-size: 13px;
background-color: purple;
display: none;
}
已编辑:修复了 (i-0) 拼写错误,更正为 (i=0)。标签内容仍未显示。
最佳答案
你的js函数有几个错误。将您的 html anchor 更改为 <a href="#tab2">
, <a href="#tab3">
等等并像下面这样更改js
//Tab initialization
window.addEventListener("load", function() {
makeTabs(".tabs")
});
function makeTabs(selector) {
tab_lists_anchors = document.getElementsByTagName("a");
divs = document.querySelector(selector).getElementsByTagName("div");
for (var i = 0; i < tab_lists_anchors.length; i++) {
if (tab_lists_anchors[i].classList.contains('active')) {
divs[i].style.display = "block";
}
}
for (i = 0; i < tab_lists_anchors.length; i++) {
document.getElementsByTagName("a")[i].addEventListener('click', function(e) {
for (i = 0; i < divs.length; i++) {
divs[i].style.display = "none";
}
for (i = 0; i < tab_lists_anchors.length; i++) {
tab_lists_anchors[i].classList.remove("active");
}
clicked_tab = e.target || e.srcElement;
clicked_tab.classList.add('active');
div_to_show = clicked_tab.getAttribute('href');
document.querySelector(div_to_show).style.display = "block";
});
}
}
关于Javascript 标签 : Why Isn't My Tab Contents Showing Up?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38341806/
我有一个扩展程序,我已经拆掉了裸机,它使自己处于不正确的状态,当它折叠时它会说“显示更少”。 这有两种情况 我使用“显示更多”展开扩展,然后离开屏幕。我打开另一个应用程序,然后返回到扩展程序。扩展的扩
为什么这些不相等? show $ if someCondition then someInt else some double 和 if someCondition then show someInt
下面给出的代码可以编译,ok。 data Car p q r = Car {company :: p , model :: q
是否可以在表结构中的“显示 0 到 0 个条目中的 0 个条目”旁边显示“显示条目”下拉列表。我想在底部显示“显示条目”下拉列表以及分页并显示 0 到 0 个条目,共 0 个条目。 提前致谢!!! 图
我不明白当你这样做一连串 .show() 时会发生什么。我也没有编写这段代码,也不知道如何弄清楚这里发生了什么。因此就有了这个问题。 // Remove favorite category
$(document).ready(function(){ $('html').addClass('js'); var contactForm = {
因此,在实现上一个问题的 jQuery 代码后,我注意到以下内容,每当人们添加位于显示较少/显示更多菜单中的产品时,系统会刷新页面,因为它会重新计算价格,因此也会刷新页面。但是当发生这种情况时,菜单会
我已经在 Windows 上设置了 mongodb 64bits。我成功运行了服务器和客户端。 但是当我输入时: show dbs 输出是 local 0.000GB 为什么? show dbs 应
正如标题所说,我有兴趣使用 Show a在我有 Show (a,b) 的情况下. GADT 很容易出现这个问题,如下所示: data PairOrNot a where Pair :: (b,c)
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
通常 julia> Base.show(io::IO, a::Int) = print(io, "xx") show (generic function with 98 methods) julia>
我找不到关于 Readline 选项 show-all-if-ambiguous 和 show-all-if-unmodified 之间区别的明确解释,以及是否它们影响不同的事物或相互排斥。关于这个主
我是 BeautifulSoup 的新手,我遇到了一些我不明白的问题,我认为这个问题可能尚未得到解答,但在这种情况下,我找到的答案都没有帮助我。 我需要访问 div 的内部以检索网站的词汇表条目,但是
我已经为 iOS 10 实现了新的小部件,并使用以下代码为其设置高度: @available(iOSApplicationExtension 10.0, *) func widgetActiveDis
克隆远程 git 存储库并发出 git show --show-signature 后,它说签名是好的。然后我更改了一些文件并测试了相同的命令,它仍然说签名是好的。 上面的命令到底检查了什么?验证克隆
我陷入了这个问题,而且我对 Haskell 很陌生,我试图用以下代码完成第一个欧拉问题: main = putStrLn . show . sum $ [3,6..1000]:[5,10..1000]
我有一个独立的 Android 和 iOS 应用程序。 目前正在 Android 上测试推送通知。 我已经使用以下通知键设置了我的 app.json "notification":{ "i
我所说的示例:http://jsfiddle.net/bsnxp/1/ 如果你检查源 .show().clone() display 是 inline-block (它应该是什么)并且 .clone(
我正在使用下面的 jQuery 代码来显示/隐藏网页上的额外文本 jQuery.fn.shorten = function(settings) { var config = { showC
我有一个带有 ng-show 的 div。这个 div 是我创建的自定义指令的包装器。 HTML JS function myDirective() { function doS
我是一名优秀的程序员,十分优秀!