jquery - 根据事件类获取数据属性的值

标签 jquery custom-data-attribute

我想获取数据属性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>然后,element 获取第一个 li 元素的数据属性,即本例中的 1,因此同样适用于第二个或任意数量的 li 元素。

我试过了

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"

上面的代码对我不起作用。

最佳答案

看起来工作正常。

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

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

fiddle :http://jsfiddle.net/maniator/2GYxh/

关于jquery - 根据事件类获取数据属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247247/

相关文章:

javascript - jquery-ui 可拖动小部件在滚动条上的 firefox 中不能正常工作

jquery - 如何编写一个 jQuery 函数将 data-id 循环以显示某个元素?

javascript - 如何根据 DOM 元素的内容在 jQuery 中获取对 DOM 元素的引用?

ajax - CakePHP 设置依赖 AJAX 下拉列表

javascript - 数据集与 .data - 区别?

css - CSS 可以将字符串转换为整数吗?

javascript - 如何找到具有数据属性的标签

javascript - 如何: If data attribute equals radio select add class

javascript - style.display = "block"不适用于 ie 和 chrome

javascript - 使用用户输入更新 URL 参数