使用jQuery,如何使用`.attr`方法指定两个html类中的第二个?

时间:2014-02-06 09:47:58

标签: javascript jquery

使用jQuery并使用.attr方法时如下:

$(document).ready(function(){
    $('.class1').click(function(){
        id = $(this).attr('.class2'); 
    });
});

我说上面的函数有以下HTML:

<div class="class1 $class2"></div>

第二个类是在运行时归因的,所以我有10个div,每个div都有class1,但有几个class2。然后我希望在顶部使用jQuery函数,这样每当我点击任何一个div时,它就会将该div的特定class2应用于变量ID

我希望这更有意义。

3 个答案:

答案 0 :(得分:3)

由于您的class2来自您的PHP代码,您似乎点击了数据属性的用例。

使用数据属性,您可以轻松地在HTML元素上获得一些额外的数据(通常用于javascript目的),而无需使用特殊的类或ID。

它的工作原理如下:

<span data-hero="batman">I'm a Bat!</span>

你的Javascript(使用jQuery)只需执行以下操作即可获得它的价值:

$('span').data('hero');

有关详细信息,请参阅MDNjQuery documentation

答案 1 :(得分:0)

这是你想要做的吗?

$(document).ready(function(){
    $('.class1').click(function(){
        var id = $(this).attr('class').replace('class1','').trim();
    });
});

答案 2 :(得分:0)

如果您有多类标签,则表示HTML代码如下:

<sometag class="class1 class2">...</sometag>

我认为最简单的方法是对标记的class属性执行一些字符串操作:

var class2 = $(selector).attr("class").split(" ")[1];

或者您可以编写一个简单的jQuery插件来为您完成工作:

(function($){
    $.fn.secondClass = function(){
        var c = this.attr("class").split(" ");
                    if(c.length >= 2)
                        return c[1];
    };
}(jQuery))

用法:var class2 = $(selector).secondClass();

希望这有帮助。