0

所以,我有这样的功能:

$('a.tdt-btn-*').click(function() {
            var class = $(this + "[class^=tdt-btn-*]"); // Need more here

            console.log(class);
        });

我想要做的是在最后得到通配符部分的值。我怎么能这样做?

4

2 回答 2

1

我建议:

$('a[class*=tdt-btn-]').click(function() {
    var elClasses = this.className.split(/\s+/),
        elClassWildcard;
    for (var i = 0, len = elClasses.length; i < len; i++){
        if (elClasses[i].indexOf('tdt-btn-') === 0) {
            elClassWildcard = elClasses[i].replace('tdt-btn-', '');
        }
    }
    console.log(elClassWildcard);
});

JS 小提琴演示

顺便说一句,class是 JavaScript 中的保留字,应该或可以不用作变量名(我相信如果这样做会引发错误)。

参考:

于 2013-05-12T22:33:55.237 回答
1

只有一类:

试试这个(class是一个保留字,所以我正在使用clazz):

 $('a[class^="tdt-btn-"]').click(function() {
        var clazz = $(this).attr('class').replace('tdt-btn-','')
        console.log(clazz);
 });

演示小提琴

多个 CSS 类:

它将第一次出现tdt-btn-*.

$('a[class*="tdt-btn-"]').click(function() {
    var clazz = $(this).attr('class').match(/(tdt-btn-)(.+?)(?=(\s|$))/)[2];
    console.log(clazz);
});

演示小提琴

于 2013-05-12T22:34:53.003 回答