Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по Jquery

345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Привет всем

Есть html

Код:
<div id='test'>
<ul>
<li><a href='#'>test</a>
        <ul>
                    <li><a href='http://test'>test</a>
                          <ul>
                                       <li><a href='http://test'>test</a></li>
                                       <li><a href='#'>test</a></li>
                          </ul>
                    </li>
                    <li><a href='#'>test</a></li>
         <.ul>
</li>
</ul>
</div>


нужно получить содержанимое дочернего li если в нем вложен <ul>но без тега <a>
ни как не получается

пока делаю так


 
Код:
$('#test>ul>li').each(function (){
          if($(this).children('ul').length) {
                      alert($(this).html())
                                                             }
                                                       });

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
У вас одна скобка не закрыта. Используйте children( "*:not(a)")

Код:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
  $(function() {
      $('#test>ul>li').each(function (){
          if($(this).children('ul').length) {
               var whatyouwant = $(this).children("*:not(a)");
               console.log(whatyouwant);
          }
      });
   })
</script>
</head>
<body>
<div id='test'>
<ul>
    <li><a href='#'>test</a>
            <ul>
                        <li><a href='http://test'>test</a>
                            <ul>
                                        <li><a href='http://test'>test</a></li>
                                        <li><a href='#'>test</a></li>
                            </ul>
                        </li>
                        <li><a href='#'>test</a></li>
            </ul>
    </li>
</ul>
</div>
</body>
</html>

345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Спасибо но не канает

мне нужно

получить

 
Код:
<ul>
                         <li><a href='http://test'>test</a>
                             <ul>
                                         <li><a href='http://test'>test</a></li>
                                         <li><a href='#'>test</a></li>
                             </ul>
                         </li>
                         <li><a href='#'>test</a></li>
             </ul>

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
Именно это я вам и предлагаю.
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Нет маленько не то мне нужно чтобы теги <ul>

тоже попадали а по Вашему они не попадают
285
19 февраля 2012 года
Romik
479 / / 24.11.2002
Я всё же настаиваю, что моё решение верное:
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Цитата: Romik
У вас одна скобка не закрыта. Используйте children( "*:not(a)")

Код:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
  $(function() {
      $('#test>ul>li').each(function (){
          if($(this).children('ul').length) {
                alert($(this).children("*:not(a)"));
          }
      });
   })
</script>
</head>
<body>
<div id='test'>
<ul>
    <li><a href='#'>test</a>
            <ul>
                        <li><a href='http://test'>test</a>
                            <ul>
                                        <li><a href='http://test'>test</a></li>
                                        <li><a href='#'>test</a></li>
                            </ul>
                        </li>
                        <li><a href='#'>test</a></li>
            </ul>
    </li>
</ul>
</div>
</body>
</html>



Подправил ваш код на свой лад алертом
выдаёт


 
Код:
<li><a href="http://test">test</a>
                             <ul>
                                         <li><a href="http://test">test</a></li>
                                         <li><a href="#">test</a></li>
                             </ul>
                         </li>
                         <li><a href="#">test</a></li>



А мне надо


 
Код:
<ul>
<li><a href="http://test">test</a>
                             <ul>
                                         <li><a href="http://test">test</a></li>
                                         <li><a href="#">test</a></li>
                             </ul>
                         </li>
                         <li><a href="#">test</a></li>
</ul>

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
В каком браузере вы про проверяете? alert(); в Linux Google Chrome и Opera, в Windows Google Chrome, IE6 и FireFox выдают [object Object]

Я по-прежнему настаиваю на своём варианте решения задачи. Убедитесь что вы верно ведёте отладку. В конце концов логика кода нацелена на то, чтоб извлечь всех прямых потомков, кроме A, соответственно UL включен в список.
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Цитата: Romik
В каком браузере вы про проверяете? alert(); в Linux Google Chrome и Opera, в Windows Google Chrome, IE6 и FireFox выдают [object Object]

Я по-прежнему настаиваю на своём варианте решения задачи. Убедитесь что вы верно ведёте отладку. В конце концов логика кода нацелена на то, чтоб извлечь всех прямых потомков, кроме A, соответственно UL включен в список.



извините забыл html() дописать в посте
надо alert($(this).children("*:not(a)").html());

Праильно Вы извлекаекте потомков но когда к потомку <ul> добавляем html() то получается его внутреннее содержимое и сами <ul> не попадают
Извините не знаю как ещё объяснить

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
Зачем вы добавляете html()? Что вам в итоге то нужно?
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Цитата: Romik
Зачем вы добавляете html()? Что вам в итоге то нужно?



Я пытаюсь подстроить меню (fg.menu) под свои нужды
и мне нужно выдернуть html код для вставки в раскрывающийся пункт меню

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
без html() добавление выбранного блока не работает?
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Цитата: Romik
без html() добавление выбранного блока не работает?



дак как код выдернуть больше не знаю
а Вы какие многоуровневые меню используете может я зря мучаюсь..

285
19 февраля 2012 года
Romik
479 / / 24.11.2002
Не вижу необходимости выдёргивать код. Средствами jquery полученную ноду можете добавить как есть.
Признаться, у меня нет вложенных меню, но для выпадающих пунктов использую twitter bootstrap
345
19 февраля 2012 года
vadim_k
312 / / 01.08.2006
Видно придётся что то другое пробовать ..
31K
23 февраля 2012 года
Phoenix77
19 / / 18.12.2007
vadim_k, сделайте меню по типу спойера:

Вот вам исходник со всеми поясняшками скачать
Выглядит красиво, без обновы страницы, да и настроить можно как угодно, ваша фантазия + красивое представление.
345
23 февраля 2012 года
vadim_k
312 / / 01.08.2006
Спасибо за внимание о советы

fg-menu настроить не удалось для работы в качестве правого вертикального меню коряво открывается за пределы окна,

накопал новое jeegoocontext_1_3 более корректно работает справа меня устроило уровней по желанию
присоединю файлик вдруг кому то пригодится..

Прикрепленные файлы:
54 Кб
Загрузок: 644
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог