访问jQuery中的class属性 - 键,值对

时间:2014-12-05 08:58:51

标签: javascript jquery css arrays

我正在努力获取我的div类,计划成为基本asp.net网站的标签。我希望用jQuery做到这一点,因为这样我可以在以后更好地控制动态函数。但是,当我尝试获取某些" selectedTab"的值时,我只是得到" undefined"。
我的问题是我如何将相关类与该对象的名称一起存储(我相信我的代码中已经正确),然后检索它。

这是我非常简单的html的相关部分:

<div id="t1" class="tabs"></div>
<div id="t2" class="tabs"></div>
<div id="t3" class="selectedTab"></div>
<p></p>

我的jQuery:

var tabMatchList = [{
    "tab1": "tabs"
}, {
    "tab2": "tabs"
}, {
    "tab3": "selectedTab"
}];
$.each(tabMatchList, function (i, val) {
    if ($("#t3").attr("class") == val[0]) {
        $("p").append(i + " was the tab searched for");
    } else {
        $("p").append(i + " was not the tab searched for." + val[0]);
    }
});

非常欢迎所有的帮助和建议。

2 个答案:

答案 0 :(得分:3)

.attr("class")会返回班级名称而不会 .,因此您需要将其从数组中删除:

此外,您的数组包含类selectedTab,但在您的HTML中,类为selectedTabs。确保它们匹配。

除此之外,您的代码将不会按原样运行:

首先,我们需要在对象数组中命名属性:

var tabMatchList = [{
    tabName: "tab1", tabClass: "tabs"
    }, {
    tabName: "tab2", tabClass: "tabs"
    }, {
    tabName: "tab3", tabClass: "selectedTab"
}];

然后我们可以执行以下操作:

$.each(tabMatchList, function (i, val) {
    if ($("#t3").attr("class") == val.tabClass) {
        $("p").append(" " + val.tabName + " was the tab searched for ");
    } else {
        $("p").append(" " + val.tabName + " was not the tab searched for.");
    }
});

DEMO

答案 1 :(得分:0)

$('#t1,#t2,#t3').each(function(i){
    if($(this).attr('class') == 'selectedTab' ){
       $("p").append(i + " was the tab searched for <br/>"); 
    }else{
         $("p").append(i + " was not the tab searched for." + $(this).attr('class') + "<br/>");
    }
});

DEMO