簡體   English   中英

jQuery:檢查是否存在具有特定類名的 div

[英]jQuery: Check if div with certain class name exists

使用 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] ) 索引處有一個真值,則假設存在類。

2013 年 4 月10 日編輯:我在這里創建了一個 jsperf 測試用例。

您可以使用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

我第一次運行的測試表明,屬性檢索比索引檢索快,盡管 IMO 可以忽略不計。 我仍然更喜歡使用長度,因為它對代碼的意圖更有意義,而不是更簡潔的條件。

沒有 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
}
$('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
}

參考鏈接

這很簡單...

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

顯式測試div元素:

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
}

這里有一些方法:

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 定義的方式。

if ($("#myid1").hasClass("mydivclass")){// Do any thing}
if($(".myClass")[0] != undefined){
  // it exists
}else{
  // does not exist
}

這是 Javascript 中檢查類 (hasClass) 的示例解決方案:

const mydivclass = document.querySelector('.mydivclass');
// if 'hasClass' is exist on 'mydivclass'
if(mydivclass.classList.contains('hasClass')) {
   // do something if 'hasClass' is exist.
}
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($('*').hasClass('mydivclass')){
// Do Stuff
}
if ($(".mydivclass").size()){
   // code here
}

size()方法只返回 jQuery 選擇器選擇的元素數 - 在本例中為mydivclass類的元素數。 如果它返回 0,則表達式為假,因此沒有,如果它返回任何其他數字,則 div 必須存在。

檢查某個類是否存在 div

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

}

Javascript 中的最佳方式:

if (document.getElementsByClassName("search-box").length > 0) {
// do something
}

最好的方法是檢查類的長度,如下所示:

if ($('.myDivClass').length) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM