jq查询指定ID下是否含有class属性

怎样使用jQuery查询一个ID下是否含有class属性设置,不在乎这个class设置的是什么名字只要有就行(大前提:不知道属性名!!!)?
试了下hasClass(),不能达到我的要求。
eg:

<div id="code">
        <span>/**</span>
</div>

这个时候没有class属性,我怎样查询,能让它返回个false,

<div id="code">
        <span class="comments">/**</span>
</div>

有class但我不知道具体属性名时返回个true

阅读 3.7k
2 个回答
var a = $('#code')
var b = a.attr('class');
console.log(b);
if(b){
    console.log('true')
}else{
    console.log('false')
}

jq的attr,能取的结点的指定的属性,这样你不仅知道这个结点有没有class了,连叫什么名字都知道

题主是不是问,给定一个元素,如果子元素有 class ,返回true,否则返回false?
jquery:

var chidrenHasClass=false,children=$('#div').children();
for (var i = 0; i < children.length; i++) {
    if(children[i].className!=''){
        chidrenHasClass=true;
        break;
    }
}
console.log(chidrenHasClass);

es6

console.log(chidrenHasClass = [...document.getElementById('div').children].some(ele => ele.className != ''));

ps:如果 class='' 也会认为是没有 class,因为 class 是原生属性,没有设置会为 '' ,等价于 class=''

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题