如何使用jQuery知道元素是否是正文的直接子元素

时间:2010-06-07 14:27:12

标签: jquery dom traversal

我想对不是身体的直接孩子的元素执行一些操作。如何检查特定元素以了解其是否是身体。

谢谢!

6 个答案:

答案 0 :(得分:13)

您可以通过以下方式测试标记名称:

jQuery('#urDivId').parent().is('body')

答案 1 :(得分:3)

>表示直接的孩子。 $('body > *')为您提供身体标记的所有子项,因此您始终可以使用:not( )$('*:not(body > *)')转换该标记。然而,这可能会很慢。

filter( )也适合您,可能会更快:$('body *').filter(function(){ return $(this).parent('body') });

上述任何一项都应该为您提供一套完整的非身体标记子元素的元素。

请注意,此处可能会选择大量元素;你需要尽可能地使你的选择器具有性能,你应该避免使用通配符,我在上面的例子中使用了通配符。

答案 2 :(得分:1)

只是你可以使用父函数 jquery('#yourElement').parent(); ,如果它给你身体标签,你可以找到它的直接子体。

答案 3 :(得分:1)

if ( $(this).parent()[0].nodeName.toLowerCase() == "body" ) 
{
// do stuff here
}

答案 4 :(得分:0)

很多好的答案。如果您对链接感兴趣,可以使用parent():not() selector进行另一种可能性。

var $possible_targets = [...]; // all the elements you want to check
function do_something_to_target() { 
    [...]; // insert blinking text code here! 
}

$possible_targets.parent(':not(body)').each(do_something_to_target);

答案 5 :(得分:0)

充分利用jQuery选择器:

if($('body > #divId').length > 0) {
    // your div is a direct child of body
}