2013-06-03 29 views
0

我試圖找出一個元素是否是表的子元素,如果是這樣,請不要運行腳本。查找父表是否爲

我在想這樣的事情

jQuery(jQuery('li:has-parent(table)')) { 
    // do this 
} 
else { 
    // do this 
} 

但上述方法無效,任何幫助將是巨大的。

回答

4
if (!$(element).parents('table').length){ 
    // if parent is not table 
} else { 
    // parent is table 
} 

「元素」是您的元素選擇器。

2
if ($(element).parent('table').length) { /* parent is table */ } 
if ($(element).closest('table').length) { /* parent/N-parent is table */ } 

jQuery(function($) { 
    var $element = $(selector), 
     // You can use .closest if you are not looking for a direct parent. 
     // http://api.jquery.com/closest/ 
     isChildOfTable = $element.parent('table').length; 

    if (isChildOfTable) { 

    } 
}); 

我想補充一個.parents vs .closest討論。

jsperf的問題是它試圖獲取元素評價者然後檢查長度屬性。其結果是有前沒有在測試中得出結論:

enter image description here

2
var parentTag = $(element).parent().get(0).tagName; 

檢查parentTag等於table或不

+0

注意'.tagName'最有可能的回報大寫。 https://developer.mozilla.org/en-US/docs/Web/API/element.tagName – andlrc

0
if($("#child").is("table > #child")){ 

} 
+1

我想這會更快使用'.parent('table')'。 – andlrc

0
if($('li').parent('table').length) 
+0

僅有代碼的答案並不真正有用 – nalply