使用jQuery我以编程方式生成一堆div
,如下所示:
<div class="mydivclass" id="myid1">Some Text1</div>
<div class="mydivclass" id="myid2">Some Text2</div>
我的代码中的其他地方我需要检测这些DIV是否存在。 div的类名相同,但每个div的ID都会更改。知道如何使用jQuery检测它们吗?
答案 0 :(得分:364)
您可以通过检查从JQuery返回的第一个对象来简化此操作:
if ($(".mydivclass")[0]){
// Do something if class exists
} else {
// Do something if class does not exist
}
在这种情况下,如果第一个([0]
)索引处存在真值,则假设类存在。
编辑04/10/2013:我创建了一个jsperf测试用例here。
答案 1 :(得分:92)
您可以使用size()
,但jQuery建议您使用length来避免其他函数调用的开销:
$('div.mydivclass').length
所以:
// since length is zero, it evaluates to false
if ($('div.mydivclass').length) {
<强>更新强>
选定的答案使用了性能测试,但它有轻微的缺陷,因为它还包括元素选择作为perf的一部分,这不是在这里测试的。这是一个更新的性能测试:
http://jsperf.com/check-if-div-exists/3
我的第一次测试表明,属性检索比索引检索更快,尽管IMO几乎可以忽略不计。我仍然更喜欢使用长度,对于代码的意图更有意义,而不是更简洁的条件。
答案 2 :(得分:65)
原生JavaScript总是会更快。在这种情况下:(example)
if (document.querySelector('.mydivclass') !== null) {
// .. it exists
}
如果要检查父元素是否包含具有特定类的其他元素,可以使用以下任一方法。 (example)
var parent = document.querySelector('.parent');
if (parent.querySelector('.child') !== null) {
// .. it exists as a child
}
或者,您可以在父元素上使用.contains()
方法。 (example)
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
}
答案 3 :(得分:52)
$('div').hasClass('mydivclass')// Returns true if the class exist.
答案 4 :(得分:45)
这是一个不使用Jquery的解决方案
var hasClass = element.classList.contains('class name to search');
// hasClass is boolean
if(hasClass === true)
{
// Class exists
}
参考link
答案 5 :(得分:15)
这很简单......
if ($('.mydivclass').length > 0) {
//do something
}
答案 6 :(得分:10)
明确地测试div
元素:
if( $('div.mydivclass').length ){...}
答案 7 :(得分:6)
简单的代码如下:
if ($('.mydivclass').length > 0) {
//Things to do if class exist
}
隐藏具有特定ID的div:
if ($('#'+given_id+'.mydivclass').length > 0) {
//Things to do if class exist
}
答案 8 :(得分:2)
检查div是否存在某个类
if ($(".mydivclass").length > 0) //it exists
{
}
答案 9 :(得分:2)
if ($(".mydivclass").size()){
// code here
}
size()
方法只返回jQuery选择器选择的元素数 - 在这种情况下是类mydivclass
的元素数。如果它返回0,则表达式为false,因此没有,如果它返回任何其他数字,则div必须存在。
答案 10 :(得分:2)
有很多方法可以检查具有特定类名的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.
我们可以根据要求使用任何一种abobe定义的方法。
答案 11 :(得分:1)
if($(".myClass")[0] != undefined){
// it exists
}else{
// does not exist
}
答案 12 :(得分:1)
Javascript的最佳方式:
if (document.getElementsByClassName("search-box").length > 0) {
// do something
}
答案 13 :(得分:1)
var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}
答案 14 :(得分:1)
在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
}
答案 15 :(得分:1)
这是Java语言中的检查类(hasClass)的非常简单的解决方案:
const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
// do something if 'hasClass' is exist.
}
答案 16 :(得分:0)
if($(“#myid1”)。hasClass(“ mydivclass”)){//做任何事情}
答案 17 :(得分:0)
使用它搜索整个页面
if($('*').hasClass('mydivclass')){
// Do Stuff
}