2011-07-19 43 views
3

您好,我有嵌套的div div标签如下图所示jQuery的忽视子元素

<div class="friendRequestMenu" id="friendRequestMenu"> 
    <div class="toolbarTitle"> 
     <span>Friend Requests</span> <a href="javascript:void(0)" class="hyperlink">Find Friends</a> 
    </div> 
    <div id="friendRequestData"> 
     <!-- put div class=requestli to see a block--> 
     <div class="no-request"> 
      No New Friend Requests 
     </div> 
     <a href="javascript:void(0)"> 
      <div class="see-all-requests"> 
       See All Requests 
      </div> 
     </a> 
    </div> 
</div> 

的javascript:

$('*').each(function() { /getting all elements in document 
    // do something for all elements except the div tag above 
}); 

我想要的代码办理一切除了div标签及其孩子,我知道我可以得到所有的编号和增加一个例外,但我想这样做只有父母标记 谢谢 编辑:

嗨,这是exac TLY是我想要做的

$(document.body).find('*:not(#friendRequestMenu):not(#friendRequestMenu *)').each(function() { 

    var clientWidth = $(window).width(); 
    var clientHeight = $(window).height(); 
    var heightPercent = ($(this).height()/clientHeight) * 100; 
    var widthPercent = ($(this).width()/clientWidth) * 100; 
    $(this).css('height', heightPercent.toString()); 
    $(this).css('width', widthPercent.toString()); 


    }); 

,但我想忽略一些元素,你可以看到选择部分代码心不是为我工作

+0

如果你拿出div标签和他们的孩子,那么什么都没有了。 – Oswald

+2

如果使用'*'选择器是个好主意,我建议你重新考虑一下。也许你想要做的事情可能没有迭代构成生产网页的亿万元素? – Jon

回答

-1

试试这个

$('*').not("#friendRequestMenu, #friendRequestMenu *").each(function(){ 
    //do something here 
}); 
+1

应该是'.not('#friendRequestMenu,#friendRequestMenu *')' – zzzzBov

+0

这会忽略'#friendRequestMenu'而不是它的孩子。 –

+0

是的,我错了谢谢你的投票。 – ShankarSangoli

5
$('*:not(#friendRequestMenu):not(#friendRequestMenu *)').each(...); 

使用:not()选择器应该很好地处理这个问题。

+0

嗨我试过他的,但子元素仍然受到影响,基本上即时通讯设法改变很多元素的CSS,但我不想要那些特定的元素和他们的孩子可以改变,而不必指定所有这些孩子 – Yohann

+0

@匿名匿名:请记住CSS中的C代表级联。任何字体,颜色等适用于父母将遍历到儿童以及... –

+0

@匿名匿名:请参阅[这个演示](http://jsfiddle.net/8LUVf/) –

0

最简单的形式如下:

$(':not(#friendRequestMenu, #friendRequestMenu *)').each(...); 

$('*').not('#friendRequestMenu, #friendRequestMenu *'); 

第二个版本很可能会更有效,因为我不相信浏览器的querySelectorAll机实现支持:not(...) 。不要打扰优化,除非你对查询需要多长时间有问题。