嗨,我有一个带有嵌套div的div标签,如下所示
<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标签及其子代之外的所有内容,我知道我可以获取所有id并添加异常,但我想只使用父标签 谢谢 编辑:
嗨,这正是我想做的事情
$(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 :(得分:5)
$('*:not(#friendRequestMenu):not(#friendRequestMenu *)').each(...);
使用:not()
选择器应该很好地处理它。
答案 1 :(得分:0)
最简单的形式如下:
$(':not(#friendRequestMenu, #friendRequestMenu *)').each(...);
和
$('*').not('#friendRequestMenu, #friendRequestMenu *');
第二版可能更有效率,因为我不相信浏览器的querySelectorAll
原生实现支持:not(...)
。除非您遇到查询需要多长时间的问题,否则不要打扰优化。
答案 2 :(得分:-1)
试试这个
$('*').not("#friendRequestMenu, #friendRequestMenu *").each(function(){
//do something here
});