jQuery:检查div类名是否存在

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

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

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

614871 次浏览
if ($(".mydivclass").size()){
// code here
}

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

这很简单……

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

检查div是否与某个类一起存在

if ($(".mydivclass").length > 0) //it exists
{


}

你可以使用size(),但jQuery建议你使用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/

更新

选择的答案使用性能测试,但它有轻微的缺陷,因为它也包括元素选择作为性能的一部分,这不是这里要测试的内容。这是一个更新的性能测试:

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

我的第一次测试运行表明,属性检索比索引检索快,尽管在我看来这几乎可以忽略不计。我仍然喜欢使用长度,因为对我来说,它更有意义的意图,而不是一个更简洁的条件。

显式测试div元素:

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

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

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

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

我已经创建了一个jsperf测试用例。

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

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

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) {
//Things to do if class exist
}

使用特殊id隐藏div:

if ($('#'+given_id+'.mydivclass').length > 0) {
//Things to do if class exist
}
if($(".myClass")[0] != undefined){
// it exists
}else{
// does not exist
}

这里有一些方法:

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定义的方法。

Javascript中最好的方法:

if (document.getElementsByClassName("search-box").length > 0) {
// do something
}
var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}

在Jquery中,你可以这样使用。

if ($(".className")[0]){


// Do something if class exists


} else {


// Do something if class does not exist


}

使用JavaScript

if (document.getElementsByClassName("className").length > 0) {


// Do something if class exists


}else{


// Do something if class does not exist......


}
if ($("#myid1").hasClass("mydivclass")){// Do any thing}

使用这个搜索整个页面

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

下面是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').length) {