我想在jQuery中为具有特定类的父元素的元素创建一个if语句。jQuery - 如果元素没有父类与特定的类
这是我到目前为止,但它是不正确的。
if(!$(".myElem").parents(".myDiv")) {
console.log("test")
};
任何人都可以指出我在正确的方向请。
我想在jQuery中为具有特定类的父元素的元素创建一个if语句。jQuery - 如果元素没有父类与特定的类
这是我到目前为止,但它是不正确的。
if(!$(".myElem").parents(".myDiv")) {
console.log("test")
};
任何人都可以指出我在正确的方向请。
使用length
检查它有在选择元素,因为它停止一旦找到匹配closest()
会比parents()
更好:
if(! $(".myElem").closest(".myDiv").length) {
console.log("has no parent with the class .myDiv")
}
最近的不仅会找到直接的父母,还会搜索直到找到一个父母。 – 2013-03-28 11:35:52
@塞瓦努斯 - 不是那个意思? – adeneo 2013-03-28 11:47:59
目前尚不清楚这一点。 – 2013-03-28 11:56:02
如果要测试与类元素是否myElem
有直接与父类myDiv使用下面的测试
if(!$(".myElem").parent().hasClass("myDiv")) {
console.log("test")
};
here .hasClass()会比.is()更好的选项 – 2013-03-28 11:34:11
@ITppl是的你是对的 – 2013-03-28 11:35:16
这应该选择已经得到类myElem与具有类myDiv父母这些元素:
$(".myElem").filter(function(elem) {
return $(this).parents(".myDiv").length
});
或本应选择那些有类myElem并没有说有一个类myDiv父母这些元素:
$(".myElem").filter(function(elem) {
return !$(this).parents(".myDiv").length
});
if($(".myElem").parent().hasClass(".myDiv")) {
console.log("has a parent with the class .myDiv")
}
else
{
console.log("no parent class .myDiv found")
}
试试这一个。
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');
}
http://stackoverflow.com/questions/31044/is-there-an-exists-function-for-jquery的 – Narek 2013-03-28 11:29:03
可能重复[如何判断一个元素的前面或后面的元素jquery的存在吗?] (http://stackoverflow.com/questions/5685685/how-to-judge-an-elements-previous-or-next-element-exist-with-jquery) - 同样的问题,即使方向有点不同。 – 2013-03-28 11:29:34
标题不符合问题。标题:“如果元素没有”,问题:“元素有” – 2013-03-28 11:40:23