我想对不是身体的直接孩子的元素执行一些操作。如何检查特定元素以了解其是否是身体。
谢谢!
答案 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
}