2012-04-20 47 views
1

的价值我想获取数据属性data-itemtype的基础上
ul > li class = "activeTab"获取数据属性的基础上主动类

值这里是我的代码。

<ul class="tabs"> 
    <li data-itemtype="1" class="activeTab"><a href="#tab1">Published</a></li> 
    <li data-itemtype="0" class=""><a href="#tab2">Unpublished</a></li> 
</ul> 

如果class="activeTab"是在第一<li>元件然后取第一li元素的即1的数据属性在这种情况下,因此同样适用于第二或任何数量的锂元素。

我想这

var itemType = $('ul.tabs').find('li.activeTab').attr('data-itemtype'); 

,它不工作。它显示值未定义。

更新:

我使用的标签。我想知道哪个选项卡当前处于活动状态,并且我需要JavaScript变量中的值。

这里是我的HTML代码。

<div class="widget"> 
    <ul class="tabs"> 
     <li data-itemtype="1"><a href="#tab1">Published</a></li> 
     <li data-itemtype="0"><a href="#tab2">Unpublished</a></li> 
    </ul> 
    <div class="tab_container"> 
     <div id="tab1" class="tab_content"> 
      <div class="widget" style="margin-top:0px;"> 
       <div class="title"><img src="/images/icons/dark/cart3.png" alt="" class="titleIcon" /><h6>Published Items</h6></div>       
       <p>Content</p> 
      </div> 
     </div> 
     <div id="tab2" class="tab_content"> 
      <div class="widget" style="margin-top:0px;"> 
       <div class="title"><img src="/images/icons/dark/cart3.png" alt="" class="titleIcon" /><h6>Unpublished Items</h6></div> 
       <p>Content</p> 
      </div> 
     </div> 
    </div> 
    <div class="clear"></div>   
</div> 

正在使用的jQuery是这样的。

$.fn.contentTabs = function(){ 

     $(this).find(".tab_content").hide(); //Hide all content 
     $(this).find("ul.tabs li:first").addClass("activeTab").show(); //Activate first tab 
     $(this).find(".tab_content:first").show(); //Show first tab content 

     $("ul.tabs li").click(function() { 
      $(this).parent().parent().find("ul.tabs li").removeClass("activeTab"); //Remove any "active" class 
      $(this).addClass("activeTab"); //Add "active" class to selected tab 
      $(this).parent().parent().find(".tab_content").hide(); //Hide all tab content 
      var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content 
      $(activeTab).show(); //Fade in the active content 
      return false; 
     }); 

    }; 
    $("div[class^='widget']").contentTabs(); //Run function on any div with class name of "Content Tabs" 

上面的代码不适用于我。

+0

[是,它(http://jsfiddle.net/davidThomas/3H5nc/)。 – 2012-04-20 13:32:47

+0

@大卫托马斯不确定,但它不适合我。我有更多的细节更新我的问题。 – 2012-04-20 14:01:21

+0

虽然JS小提琴演示链接为您工作吗? – 2012-04-20 14:03:37

回答

3

似乎工作正常。

我会用.data(...)代替:

var itemType = $('ul.tabs').find('li.activeTab').data('itemtype'); 
alert(itemType); 

小提琴:http://jsfiddle.net/maniator/2GYxh/

+0

@IbrahimAzharArmar你可以请显示***正是你在做什么? – Neal 2012-04-20 13:45:58

+0

更新了我的问题。 :) – 2012-04-20 13:59:50

+0

我不知道为什么。但它在点击处理程序中起作用。如果我把代码放在外面也不行,不知道为什么。 – 2012-04-20 14:16:15