$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
}).tab-content{
display: none;
}
.tab-content.current{
display: inherit;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tabs">
<li class="tab-link current" data-tab="tab-7">Tab One</li>
<li class="tab-link" data-tab="tab-8">Tab Two</li>
<li class="tab-link" data-tab="tab-9">Tab Three</li>
</ul>
<div class="tab-row">
<div id="tab-7" class="tab-content">
<h1>1</h1>
</div>
<div id="tab-8" class="tab-content">
<h1>2</h1>
</div>
<div id="tab-9" class="tab-content">
<h1>3</h1>
</div>
</div>
我在一个小应用程序中使用jQuery选项卡。在这段代码中,我想动态地创建data-tab和id属性值。有可能吗?
发布于 2017-05-15 06:31:16
您说要动态地创建li的li和div的id。
为此,可以使用.each()循环这些元素并设置值。
$(".tabs li").each(function(i,x) {
$(this).attr("data-tab","tab-" + i);
})
$(".tab-row div").each(function(i,x) {
$(this).attr("id","tab-" + i);
})
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
})
$(document).ready(function() {
$(".tabs li").each(function(i,x) {
$(this).attr("data-tab","tab-" + i);
})
$(".tab-row div").each(function(i,x) {
$(this).attr("id","tab-" + i);
})
}).tab-content{
display: none;
}
.tab-content.current{
display: inherit;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tabs">
<li class="tab-link current" >Tab One</li>
<li class="tab-link" >Tab Two</li>
<li class="tab-link" >Tab Three</li>
</ul>
<div class="tab-row">
<div class="tab-content">
<h1>1</h1>
</div>
<div class="tab-content">
<h1>2</h1>
</div>
<div class="tab-content">
<h1>3</h1>
</div>
</div>
发布于 2017-05-15 06:33:16
$(document).ready(function() {
$(".tabs li").each(function(i, v) {
$(this).attr('data-tab', "tab-" + i)
$('.tab-content').eq(i).attr('id', "tab-" + i)
})
$('ul.tabs li').click(function() {
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#" + tab_id).addClass('current');
})
}).tab-content {
display: none;
}
.tab-content.current {
display: inherit;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tabs">
<li class="tab-link current">Tab One</li>
<li class="tab-link">Tab Two</li>
<li class="tab-link">Tab Three</li>
</ul>
<div class="tab-row">
<div class="tab-content">
<h1>1</h1>
</div>
<div class="tab-content">
<h1>2</h1>
</div>
<div class="tab-content">
<h1>3</h1>
</div>
</div>
.att()向元素添加动态属性发布于 2017-05-15 06:42:57
我创建了一个代码聚合,您只想动态地创建属性,而不是元素。
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tabs">
<li class="tab-link current" data-tab="tab-7">Tab One</li>
<li class="tab-link" data-tab="tab-8">Tab Two</li>
<li class="tab-link" data-tab="tab-9">Tab Three</li>
</ul>
<div class="tab-row">
<div id="tab-7" class="tab-content">
<h1>1</h1>
</div>
<div id="tab-8" class="tab-content">
<h1>2</h1>
</div>
<div id="tab-9" class="tab-content">
<h1>3</h1>
</div>
</div>CSS
.tab-content{
display: none;
}
.tab-content.current{
display: inherit;
}jQuery
$(function()
{
$('ul.tabs li').click(function()
{
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
});
//Creat dynamic data-tabs and id's
//tabs
$('.tabs > li').each(function(index)
{
$(this).attr('data-tab','tab-'+index+1);
});
//tabrows
$('.tab-row > div').each(function(index){
$(this).attr('id', 'tab-'+index+1);
});
});链接到jsfiddle:
https://stackoverflow.com/questions/43972621
复制相似问题