0

2つ以上のクラス名を含むjQueryオブジェクト(thisClass)があります。あらかじめ決められた配列にあるクラス名だけを返す方法を見つけようとしています。

このようなもの:

var thisClass = $(this).attr("class");
var icons = ["glass","leaf","dog","home"];

[Use grep here to return thisClass only as a single class name that is filtered by, or contained in icons.]
4

1 に答える 1

1

うーん、まず第一に、attrメソッドはjQueryオブジェクトではなく文字列を返します。この場合、すべてのCSSクラスがスペースで区切られた文字列を返します。クラスがない場合は、を返しますundefined。したがって、次のコードを試してみてください。

var thisClass = $(this).attr("class");
var result = [];

if(thisClass) {
    thisClass = thisClass.split(' ');
    for(var i = 0; i < thisClass.length; i++) {
        if(icons.indexOf(thisClass[i]) !== -1) {
            result.push(thisClass[i]);
        }
    }
} else {
    // return; or something. There is no classes.
}
于 2012-12-14T19:42:17.947 に答える