15

特定のクラスを持つ親を持つ要素に対して、jQuery で if ステートメントを作成しようとしています。

これは私がこれまで思いついたことですが、正しくありません。

if(!$(".myElem").parents(".myDiv")) {
    console.log("test")
};

誰でも私を正しい方向に向けることができますか?

4

7 に答える 7

27

lengthセレクターに要素があることを確認するために使用します。一致が見つかったら停止するclosest()よりも優れています。parents()

if(! $(".myElem").closest(".myDiv").length ) {
    console.log("has no parent with the class .myDiv")
}
于 2013-03-28T11:28:21.773 に答える
6

クラスを持つ要素がmyElemクラス myDiv を持つ直接の親を持つかどうかをテストする場合は、次のテストを使用します

if(!$(".myElem").parent().hasClass("myDiv")) {
    console.log("test")
};
于 2013-03-28T11:28:45.393 に答える
3
if($(".myElem").parent().hasClass(".myDiv")) {
    console.log("has a parent with the class .myDiv")
}
else
{
    console.log("no parent class .myDiv found")
}
于 2013-03-28T11:36:33.330 に答える
1

これにより、クラス myDiv を持つ親を持つクラス myElem を持つ要素が選択されます。

$(".myElem").filter(function(elem) {
    return $(this).parents(".myDiv").length
});

または、クラス myElem を持ち、クラス myDiv を持つ親を持たない要素を選択する必要があります。

$(".myElem").filter(function(elem) {
    return !$(this).parents(".myDiv").length
});
于 2013-03-28T11:33:53.010 に答える
0

これを試してみてください。

   if($("#child").parent("span#parent").length > 0)
   {
          console.log("parent is span");

   }
   else {
          console.log("parent is not span or no parent");
   }
于 2013-03-28T11:38:41.377 に答える
0

より良いアプローチは.closest()、子のクラス名がわかっている場合に使用することです。

if(!$('yourtag.childClass').closest('yourParentTag').hasClass('classname')){
    console.log('does not exist');
}
于 2013-03-28T12:01:43.937 に答える