检查是否存在具有某个类名称的div

使用jQuery我以编程方式生成一堆div这样的:

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

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

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

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

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

编辑04/10/2013:我在这里创build了一个jsperftesting用例。

您可以使用size() ,但jQuerybuild议您使用length来避免另一个函数调用的开销:

 $('div.mydivclass').length 

所以:

 // since length is zero, it evaluates to false if ($('div.mydivclass').length) { 

http://api.jquery.com/size/

http://api.jquery.com/length/

UPDATE

所选的答案使用了一个性能testing,但是它有一点缺陷,因为它也包含元素select作为性能testing的一部分,这不是在这里testing的。 这是一个更新的性能testing:

http://jsperf.com/check-if-div-exists/3

我的第一次运行testing表明,属性检索比索引检索快,虽然IMO是可以忽略不计的。 我仍然更喜欢使用长度,对于代码的意图而不是更简洁的条件更有意义。

 $('div').hasClass('mydivclass')// Returns true if the class exist. 

这是一个不使用Jquery的解决scheme

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

参考链接

没有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 } 

明确地testingdiv元素:

if( $('div.mydivclass').length ){...}

简单的代码如下:

 if ($('.mydivclass').length > 0) { //Things to do if class exist } 

用particuler id来隐藏div:

 if ($('#'+given_id+'.mydivclass').length > 0) { //Things to do if class exist } 
 if ($(".mydivclass").size()){ // code here } 

size()方法只是返回jQueryselect器select的元素的数量 – 在这种情况下是类mydivclass的元素的数量。 如果返回0,则expression式为false,因此没有,如果返回任何其他数字,则div必须存在。

检查div是否存在某个类

 if ($(".mydivclass").length > 0) //it exists { } 
 if($(".myClass")[0] != undefined){ // it exists }else{ // does not exist } 

有很多方法可以用某个类名来检查div的存在。下面是一些有用的方法:

 1. if($("div").hasClass("mydivclass")){//Do any thing} // It returns true if any div has 'mydivclass' name. It is a based on the class name 2. if($("#myid1").hasClass("mydivclass")){//Do any thing} // 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){//Do any thing} // It returns all the divs whose class name is "mydivclass" // and it's length would be greater than one. 

我们可以根据需要使用任何一种不确定的方式。