首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试用jQuery选择的元素的类?

如何测试用jQuery选择的元素的类?
EN

Stack Overflow用户
提问于 2014-02-04 19:15:42
回答 4查看 52关注 0票数 1

我有下面的代码,应该使偶数行变成蓝色(布局-2有蓝色的背景)。我不希望这种方法适用于带有类“”的表行。由于某些原因,代码仍然会变成添加任务的蓝色,尽管它不应该。我如何解决这个问题?

代码语言:javascript
复制
var it = $('.add-task');
if (it.className == 'add-task'){
}
else{
    $('table tbody tr:even').addClass('layout-2');
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-04 19:22:30

className无法工作,因为jQuery将DOM元素封装在帮助器类中,以使它们更易于使用。但是,可以将条件直接构建到选择器中:

代码语言:javascript
复制
$('table tbody tr:even not:(.add-task)').addClass('layout-2');
票数 0
EN

Stack Overflow用户

发布于 2014-02-04 19:17:56

it是一个jQuery对象,而不是DOM节点。jQuery有一个有用的hasClass方法,您可以使用:

代码语言:javascript
复制
var it = $('.add-task');
if (it.hasClass('add-task')) {
  ...
} else {
  ...
};
票数 1
EN

Stack Overflow用户

发布于 2014-02-04 19:16:23

您必须使用.attr('class')来获取所选元素的类。或者可以使用.hasClass('className')检查所选元素是否具有该类。

试试看

代码语言:javascript
复制
var it = $('.add-task');

//But .hasClass() should be a recommended one here
if(it.attr('class').indexOf('add-task') > -1){
  $('table tbody tr:even').addClass('layout-2');
}

或者您可以使用.toggleClass('className',switch)

代码语言:javascript
复制
$('table tbody tr:even').toggleClass('layout-2',it.hasClass('add-task'));

或者可以使用本机JS对象,

代码语言:javascript
复制
var it = $('.add-task');
if(it[0].className).indexOf('add-task') > -1){
  $('table tbody tr:even').addClass('layout-2');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21561352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档