为了账号安全,请及时绑定邮箱和手机立即绑定

原生js判断某个元素是否有指定的class名的几种方法

原生js判断某个元素是否有指定的class名的几种方法

萧十郎 2019-05-13 15:08:14
原生js判断某个元素是否有指定的class名的几种方法
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

【注意】以下方法只对class只有一个值的情况下操作

结构部分:

1

2

3

4

5

<div>   

    <p>1</p>   

    <p class="test">2</p>   

    <p>3</p>

</div>

js部分:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

var p = document.getElementsByTagName('p');

for(var i = 0;i <p.length;i++){

  //第一种方法,用classList这个H5 API,有兼容性问题

  if(p[i].classList.contains('test')==true){    

      console.log(p[i].innerHTML);      

  }

    //第二种方法,用className这个属性

    if(p[i].className=='test'){    

       console.log(p[i].innerHTML)     

    }

    //第三种方法,用getAttribute()这个方法

    if(p[i].getAttribute("class")=='test'){      

      console.log(p[i].innerHTML);

    }

}

以上三种可以任选,条件是不考虑兼容性和多个class名的情况


 




查看完整回答
1 反对 回复 2019-05-14
  • qq_江湖浪子_1
    qq_江湖浪子_1
    特地登陆就是为了给你点赞,谢谢你还有跟你一样乐于助人,你这份分享很详细,帮助到我了,谢谢啦
?
慕的地10843

TA贡献1785条经验 获得超8个赞


如果不考虑兼容IE10以下的话,可以用HTML5中的classList API,非常方便:

1

2

3

4

var node = document.getElementById('demo');

if(node.classList.contains('test')){

    console.log('包含 test 这个class');

}

兼容的方式是采用className和getAttribute('class')方法:

1

2

3

4

5

6

7

8

9

10

11

if (node.getAttribute('class')) {  // 存在class属性

    // 方式1

    if (node.getAttribute('class').indexOf('test') > -1) {

        console.log('包含 test 这个class');   

    }

     

    // 方式2

    if (node.className.indexOf('test') > -1) {

        console.log('包含 test 这个class');   

    }

}

 



查看完整回答
反对 回复 2019-05-14
?
万千封印

TA贡献1891条经验 获得超3个赞

//第一种方法,用classList这个H5 API,有兼容性问题
if(p[i].classList.contains('test')==true){
console.log(p[i].innerHTML);
}
//第二种方法,用className这个属性
if(p[i].className=='test'){
console.log(p[i].innerHTML)
}
//第三种方法,用getAttribute()这个方法
if(p[i].getAttribute("class")=='test'){
console.log(p[i].innerHTML);
}
}
以上三种可以任选,条件是不考虑兼容性和多个class名的情况



查看完整回答
反对 回复 2019-05-14
  • 3 回答
  • 0 关注
  • 4452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信