我想在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