rash Posted July 20, 2008 Report Share Posted July 20, 2008 Возникла тут задача недавно (уже решена, но решена плохо): повесить обработчики на все [*], у которых нет дочернего элемента , при этом может быть потомком более глубокого уровня.То есть я бы сформулировал это примерно так:$(".someclass li").not("li < a")...Но, естественно, это не работает, впрочем, и не должно.Собственно, вопрос: как это следовало сделать грамотно?Документации по jQuery много, но найти корректный ответ на этот вопрос я не смог. Quote Link to comment Share on other sites More sharing options...
0 vasa_c Posted July 20, 2008 Report Share Posted July 20, 2008 Возникла тут задача недавноЭто не задача, это промежуточное решение, не обязательно верное.Огласите изначальную задачу для решения которой пришлось вешать обработчики на LI Quote Link to comment Share on other sites More sharing options...
0 yopopt Posted July 20, 2008 Report Share Posted July 20, 2008 vasa_cЗришь в корень. Quote Link to comment Share on other sites More sharing options...
0 rash Posted July 20, 2008 Author Report Share Posted July 20, 2008 Непосредственно сейчас поставлена задача - установить обработчики на элементы, отвечающие заданному условию.Точнее, корректно сформулировать это условие.Считать это уроком по jQuey. Quote Link to comment Share on other sites More sharing options...
0 yopopt Posted July 21, 2008 Report Share Posted July 21, 2008 А зачем для этого jQuery? Я бы сделал как-то так:var node = document.getElementsByTagName('li');var i = node.length;while(i--) { if(!node[i].getElementsByTagName('a')[0]) { //вешаем обработчик }} Quote Link to comment Share on other sites More sharing options...
0 Maslakoff Posted July 21, 2008 Report Share Posted July 21, 2008 yopopt, +1 ))) Quote Link to comment Share on other sites More sharing options...
0 rash Posted July 21, 2008 Author Report Share Posted July 21, 2008 Так тоже можно, рассматривался и такой вариант.Просто сломал много копий в поисках изящного решения на jQuery и не нашел никакого, поэтому и решил спросить, чтобы вразумили, как надо было сделать, чтобы не растеряться при другой подобной задаче и т.д.Хотя все равно спасибо, при моем незнании javaScript любой урок полезен. Quote Link to comment Share on other sites More sharing options...
0 e1f Posted August 1, 2008 Report Share Posted August 1, 2008 С использованием jQuery можно так:$(".someclass li:has('a')") ... Quote Link to comment Share on other sites More sharing options...
Question
rash
Возникла тут задача недавно (уже решена, но решена плохо): повесить обработчики на все
[*], у которых нет дочернего элемента , при этом может быть потомком более глубокого уровня.
То есть я бы сформулировал это примерно так:
$(".someclass li").not("li < a")...Но, естественно, это не работает, впрочем, и не должно.
Собственно, вопрос: как это следовало сделать грамотно?
Документации по jQuery много, но найти корректный ответ на этот вопрос я не смог.
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.