0

我试图找出一个元素是否是表的子元素,如果是,请不要运行脚本。

我在想这样的事情

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

但以上不起作用,任何帮助都会很棒。

4

5 回答 5

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

“元素”是您的元素选择器。

于 2013-06-03T11:29:45.697 回答
3
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 ) {

    } 
});

只是为了添加一个.parentsvs.closest讨论。

jsperf的问题在于它试图获取元素评估器然后检查长度属性。结果在测试中没有得出结论:

在此处输入图像描述

于 2013-06-03T11:30:26.247 回答
2
var parentTag = $(element).parent().get(0).tagName;

检查是否parentTag 等于table

于 2013-06-03T11:30:31.637 回答
0
if($("#child").is("table > #child")){

}
于 2013-06-03T11:33:53.827 回答
0
if($('li').parent('table').length)
于 2013-06-03T11:37:22.453 回答