JQuery игнорировать дочерние элементы - PullRequest
4 голосов
/ 19 июля 2011

привет, у меня есть тег 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 и его потомков, я знаю, что могу получить все идентификаторы и добавить исключение, но я хочу сделать это только с родительским тегом Спасибо EDIT:

Привет, это именно то, что я хочу сделать

$(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());


    });

но я хочу игнорировать некоторые элементы, поскольку вы можете видеть, что код детали селектора не работает для меня

Ответы [ 3 ]

5 голосов
/ 19 июля 2011
$('*:not(#friendRequestMenu):not(#friendRequestMenu *)').each(...);

Использование селектора :not() должно прекрасно с этим справиться.

0 голосов
/ 19 июля 2011

Простейшие формы следующие:

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

и

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

Вторая версия, вероятно, будет более эффективной, поскольку я не верю, что нативная реализация браузера querySelectorAll поддерживает :not(...). Не беспокойтесь об оптимизации, если у вас нет проблемы с продолжительностью запроса.

0 голосов
/ 19 июля 2011

Попробуйте это

$('*').not("#friendRequestMenu, #friendRequestMenu *").each(function(){
  //do something here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...