使用jQuery,我以编程方式生成了一堆div,就像这样:

<div class="mydivclass" id="myid1">Some Text1</div>
<div class="mydivclass" id="myid2">Some Text2</div>

在代码的其他地方,我需要检测这些div是否存在。div的类名是相同的,但ID为每个div的变化。任何想法如何检测他们使用jQuery?


当前回答

下面是Javascript中检查类(hasClass)的示例解决方案:

const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
   // do something if 'hasClass' is exist.
}

其他回答

if ($(".mydivclass").size()){
   // code here
}

size()方法只是返回jQuery选择器选择的元素数量——在本例中是mydivclass类的元素数量。如果返回0,则表达式为假,因此没有,如果返回任何其他数字,则div必须存在。

var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}

这里是一个不使用Jquery的解决方案

var hasClass = element.classList.contains('class name to search');
// hasClass is boolean
if(hasClass === true)
{
     // Class exists
}

参考链接

你可以通过检查JQuery返回的第一个对象来简化它:

if ($(".mydivclass")[0]){
    // Do something if class exists
} else {
    // Do something if class does not exist
}

在这种情况下,如果第一个([0])索引处有一个真值,则假设类存在。

编辑04/10/2013:我在这里创建了一个jsperf测试用例。

这很简单……

if ($('.mydivclass').length > 0) {
  //do something
}