web-dev-qa-db-ja.com

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を使用してそれらを検出する方法はありますか?

205
avatar

JQueryから返される最初のオブジェクトをチェックすることでこれを単純化できます。

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

この場合、最初の([0])インデックスに真の値があれば、classが存在すると仮定します。

編集04/10/2013:ここでjsperfテストケース を作成しました

367
Shaz

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/

UPDATE

選択された回答はperfテストを使用しますが、perfの一部として要素の選択も含まれているため、ここではテストされていません。これが最新のperfテストです。

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

私が最初にテストを実行したところ、プロパティ検索はインデックス検索よりも速いことがわかりましたが、IMOはほとんど無視できます。私は長さを使用することを今でも好んで使用しています。より簡潔な条件ではなく、コードの意図に関しては意味があります。

93
Eli

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
}
67
Josh Crozier
$('div').hasClass('mydivclass')// Returns true if the class exist.
53
Hussein

これはJqueryを使わない解決策です

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

参照 リンク

45
Ronald

とても簡単です...

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

div要素を明示的にテストするには:

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

10
Stefan Kendall

以下に簡単なコードを示します。

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

特定のIDを持つdivを非表示にするには:

if ($('#'+given_id+'.mydivclass').length > 0) {
   //Things to do if class exist
}
6
Jitendra Damor

divが特定のクラスに存在するかどうかを確認する

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

}
2
neebz

特定のクラス名を持つ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定義方法を使用できます。

2
if($(".myClass")[0] != undefined){
  // it exists
}else{
  // does not exist
}
2
stairie
if ($(".mydivclass").size()){
   // code here
}

size()メソッドは、jQueryセレクタが選択した要素の数(この場合はクラスmydivclassを持つ要素の数)を返すだけです。それが0を返す場合、式は偽であり、したがって何もありません。それ以外の数を返す場合、divは存在しなければなりません。

2
Herman Schaaf

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

}
1
Shaan Ansari
var x = document.getElementsByClassName("class name");
if (x[0]) {
alert('has');
} else {
alert('no has');
}
1

Javascriptでの最善の方法

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

if($( "#myid1")。hasClass( "mydivclass")){//何かをしてください}

0
Thilina

これを使用してページ全体を検索します

if($('*').hasClass('mydivclass')){
// Do Stuff
}
0
Arosha De Silva