阅读attr课程,但我只需要其中一个

时间:2011-04-08 20:38:05

标签: javascript jquery

我有一个有很多课程的div。我用

选择它们
$('#mydiv').attr('class');  //outputs 'redball blueball greenbrick whitesquare'

我真正需要的是以“红色”开头的类,所以我真的只想输出'redball'。是否有捷径可寻?

3 个答案:

答案 0 :(得分:0)

尝试使用正则表达式提取它:

将输出拆分成数组,同时更新数组值尝试使用一些regulr表达式进行测试(如下所示:/ red [a-zA-Z09] * /)

希望它可以帮到你

答案 1 :(得分:0)

您可以尝试.hasClass()方法来帮助您做出决定。

if( $( '#myDiv' ).attr( 'class' ).hasClass( 'redball' ) ) { 
    // call method to serve the redball...
}

或者,按照其他人的建议使用.split()和正则表达式也可以使用 - 取决于您希望如何使用输出。

<强>奖金:
但是为了提高效率,最好将DOM对象缓存在局部变量中,并在需要对元素执行更多操作时访问它。这样,Javascript不必返回DOM树,并且每次要使用它时都会获取相同的对象。

var myDiv = $( '#myDiv' ); // store the <div> object in the variable
var classNames = myDiv.attr( 'class' );

switch( classNames ) {
    case 'redball':
        serveBall( 'red' );
        break;
    case 'blueball':
        serveBall( 'blue' );
        break;
        .....
}

答案 2 :(得分:0)

就像已经说过的那样,拆分空格并找到匹配的类。这是一个示例函数:

<script language="javascript">
$(document).ready(function() {
  var list = $('#mydiv').attr('class').split(/\s+/);
  for (i = 0; i < list.length; i++) {
    if (/red.*/.test(list[i])) {
      alert(list[i]);
    }
  }
});
</script>