首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在jquery选项卡中传递动态id

如何在jquery选项卡中传递动态id
EN

Stack Overflow用户
提问于 2017-05-15 06:17:37
回答 3查看 890关注 0票数 0

代码语言:javascript
运行
复制
$('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');
})
代码语言:javascript
运行
复制
.tab-content{
	display: none;	
}
.tab-content.current{
  display: inherit;
}
代码语言:javascript
运行
复制
<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属性值。有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-15 06:31:16

您说要动态地创建lilidivid

为此,可以使用.each()循环这些元素并设置值。

代码语言:javascript
运行
复制
  $(".tabs li").each(function(i,x) {
    $(this).attr("data-tab","tab-" + i);
  })

  $(".tab-row div").each(function(i,x) {
    $(this).attr("id","tab-" + i);
  })

代码语言:javascript
运行
复制
$('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);
  })
})
代码语言:javascript
运行
复制
.tab-content{
	display: none;	
}
.tab-content.current{
  display: inherit;
}
代码语言:javascript
运行
复制
<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>

票数 0
EN

Stack Overflow用户

发布于 2017-05-15 06:33:16

代码语言:javascript
运行
复制
$(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');
  })
})
代码语言:javascript
运行
复制
.tab-content {
  display: none;
}

.tab-content.current {
  display: inherit;
}
代码语言:javascript
运行
复制
<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>

  1. 使用.att()向元素添加动态属性
票数 0
EN

Stack Overflow用户

发布于 2017-05-15 06:42:57

我创建了一个代码聚合,您只想动态地创建属性,而不是元素。

HTML

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
.tab-content{
    display: none;  
}
.tab-content.current{
  display: inherit;
}

jQuery

代码语言:javascript
运行
复制
$(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://jsfiddle.net/68736s61/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43972621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档