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

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

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


当前回答

这里有一些方法:

1.  if($("div").hasClass("mydivclass")){
    //Your code

    //It returns true if any div has 'mydivclass' name. It is a based on the class name
    }

2. if($("#myid1").hasClass("mydivclass")){
    //Your code


    //  It returns true if specific div(myid1) has this class "mydivclass" name. 
    //  It is a  based on the specific div id's.
    }           
3. if($("div[class='mydivclass']").length > 0){
    //Your code

   // It returns all the divs whose class name is "mydivclass"
   //  and it's length would be greater than one.
    }

我们可以根据需要使用任何一种abobe定义的方法。

其他回答

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

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

参考链接

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

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

使用这个搜索整个页面

if($('*').hasClass('mydivclass')){
// Do Stuff
}

没有jQuery:

原生JavaScript总是更快。在这种情况下:(示例)

if (document.querySelector('.mydivclass') !== null) {
    // .. it exists
}

如果希望检查父元素是否包含具有特定类的另一个元素,可以使用以下方法之一。(例子)

var parent = document.querySelector('.parent');

if (parent.querySelector('.child') !== null) {
    // .. it exists as a child
}

或者,您可以在父元素上使用.contains()方法。(例子)

var parent = document.querySelector('.parent'),
    child = document.querySelector('.child');

if (parent.contains(child)) {
    // .. it exists as a child
}

..最后,如果你想检查一个给定的元素是否只包含一个特定的类,使用:

if (el.classList.contains(className)) {
    // .. el contains the class
}

这很简单……

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