特定のクラスを持つ親を持つ要素に対して、jQuery で if ステートメントを作成しようとしています。
これは私がこれまで思いついたことですが、正しくありません。
if(!$(".myElem").parents(".myDiv")) {
console.log("test")
};
誰でも私を正しい方向に向けることができますか?
特定のクラスを持つ親を持つ要素に対して、jQuery で if ステートメントを作成しようとしています。
これは私がこれまで思いついたことですが、正しくありません。
if(!$(".myElem").parents(".myDiv")) {
console.log("test")
};
誰でも私を正しい方向に向けることができますか?
length
セレクターに要素があることを確認するために使用します。一致が見つかったら停止するclosest()
よりも優れています。parents()
if(! $(".myElem").closest(".myDiv").length ) {
console.log("has no parent with the class .myDiv")
}
クラスを持つ要素がmyElem
クラス myDiv を持つ直接の親を持つかどうかをテストする場合は、次のテストを使用します
if(!$(".myElem").parent().hasClass("myDiv")) {
console.log("test")
};
if($(".myElem").parent().hasClass(".myDiv")) {
console.log("has a parent with the class .myDiv")
}
else
{
console.log("no parent class .myDiv found")
}
これにより、クラス myDiv を持つ親を持つクラス myElem を持つ要素が選択されます。
$(".myElem").filter(function(elem) {
return $(this).parents(".myDiv").length
});
または、クラス myElem を持ち、クラス myDiv を持つ親を持たない要素を選択する必要があります。
$(".myElem").filter(function(elem) {
return !$(this).parents(".myDiv").length
});
これを試してみてください。
if($("#child").parent("span#parent").length > 0)
{
console.log("parent is span");
}
else {
console.log("parent is not span or no parent");
}
より良いアプローチは.closest()
、子のクラス名がわかっている場合に使用することです。
if(!$('yourtag.childClass').closest('yourParentTag').hasClass('classname')){
console.log('does not exist');
}