我有一个有很多课程的div。我用
选择它们$('#mydiv').attr('class'); //outputs 'redball blueball greenbrick whitesquare'
我真正需要的是以“红色”开头的类,所以我真的只想输出'redball'。是否有捷径可寻?
答案 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>