【js实例】js实现点击标题标签切换显示对应内容

标题标签层点击后切换显示对应的内容层,例如有一个简单的滑动标签:

记得自己要先写ul,li,div的样式哦,我这里就省略样式了

<div id="tab">
	<ul>
		<li class="active">电影</li>
		<li>综艺</li>
		<li>动漫</li>
	</ul>
	<div class="active">钢铁侠</div>
	<div>快乐大本营</div>
	<div>火影忍者</div>
</div>
<script>
	var box = document.getElementById("tab"); //获取滑动标签最外层元素
	var olis = box.getElementsByTagName("li"); //获取标签元素
	var odivs = box.getElementsByTagName("div"); //获取切换内容层元素
	//构建循环,获取每一个标签
	for(var i=0; i<olis.length; i++) {
	    //给每一个标签设置一个序号属性
	    olis[i].index = i;
	    //给每一个标签绑定点击事件
	    olis[i].onclick = function () {
			//清除所有标签样式
			for(var j=0; j<olis.length; j++) {
			    olis[j].className="";
			    odivs[j].className="";
			}
			//给当前点击的标签加上样式
			this.className="active";
			//给当前点击的标签序号对应的内容层加上样式
			odivs[this.index].className="active";
           }
	}
</script>
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以给你提供一个基本的tabs标签页组件实现,你可以根据自己的需求进行修改。 首先,我们需要定义组件的HTML结构,如下所示: ```html <div class="tab-wrapper"> <div class="tab-header"> <ul class="tab-nav"> <li v-for="(tab, index) in tabs" :key="index" @click="activeTab = index" :class="{ active: activeTab === index }">{{ tab.title }}</li> </ul> </div> <div class="tab-content"> <div v-for="(tab, index) in tabs" :key="index" v-show="activeTab === index">{{ tab.content }}</div> </div> </div> ``` 在这个HTML结构中,我们定义了一个包含两个子元素的div元素,分别是tab-header和tab-content。tab-header用于显示标签页的标题,tab-content用于显示标签页的内容。我们使用v-for指令来遍历tabs数组中的元素,生成对应标签页。 接下来,我们需要在Vue实例中定义组件的数据和方法,如下所示: ```javascript Vue.component('tabs', { template: '#tabs-template', props: { tabs: { type: Array, required: true } }, data() { return { activeTab: 0 } } }) ``` 在这个组件中,我们使用了props属性来接收父组件传递过来的tabs数组,用于生成标签页的标题内容。我们还定义了一个activeTab变量,用于记录当前激活的标签页的索引。 最后,我们需要在Vue实例中定义tabs组件的HTML模板,如下所示: ```html <div id="app"> <tabs :tabs="tabs"></tabs> </div> <script type="text/x-template" id="tabs-template"> <div class="tab-wrapper"> <div class="tab-header"> <ul class="tab-nav"> <li v-for="(tab, index) in tabs" :key="index" @click="activeTab = index" :class="{ active: activeTab === index }">{{ tab.title }}</li> </ul> </div> <div class="tab-content"> <div v-for="(tab, index) in tabs" :key="index" v-show="activeTab === index">{{ tab.content }}</div> </div> </div> </script> <script> new Vue({ el: '#app', data: { tabs: [ { title: '页面1', content: '这是页面1的内容' }, { title: '页面2', content: '这是页面2的内容' } ] } }) </script> ``` 在这个HTML模板中,我们使用了tabs组件,并将tabs数组作为props属性传递给组件。我们还定义了tabs组件的HTML结构,使用了v-for指令来遍历tabs数组中的元素,生成对应标签页。 现在,你可以打开浏览器查看效果了,你会看到两个标签页,点击标签页的标题切换对应内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值