<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>
Вопрос по Jquery
Есть 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>
<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())
}
});
if($(this).children('ul').length) {
alert($(this).html())
}
});
Код:
<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>
<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>
мне нужно
получить
Код:
Именно это я вам и предлагаю.
тоже попадали а по Вашему они не попадают
Я всё же настаиваю, что моё решение верное:
Цитата: 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>
<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></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>
<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>
Я по-прежнему настаиваю на своём варианте решения задачи. Убедитесь что вы верно ведёте отладку. В конце концов логика кода нацелена на то, чтоб извлечь всех прямых потомков, кроме A, соответственно UL включен в список.
Цитата: Romik
В каком браузере вы про проверяете? alert(); в Linux Google Chrome и Opera, в Windows Google Chrome, IE6 и FireFox выдают [object Object]
Я по-прежнему настаиваю на своём варианте решения задачи. Убедитесь что вы верно ведёте отладку. В конце концов логика кода нацелена на то, чтоб извлечь всех прямых потомков, кроме A, соответственно UL включен в список.
Я по-прежнему настаиваю на своём варианте решения задачи. Убедитесь что вы верно ведёте отладку. В конце концов логика кода нацелена на то, чтоб извлечь всех прямых потомков, кроме A, соответственно UL включен в список.
извините забыл html() дописать в посте
надо alert($(this).children("*:not(a)").html());
Праильно Вы извлекаекте потомков но когда к потомку <ul> добавляем html() то получается его внутреннее содержимое и сами <ul> не попадают
Извините не знаю как ещё объяснить
Зачем вы добавляете html()? Что вам в итоге то нужно?
Цитата: Romik
Зачем вы добавляете html()? Что вам в итоге то нужно?
Я пытаюсь подстроить меню (fg.menu) под свои нужды
и мне нужно выдернуть html код для вставки в раскрывающийся пункт меню
без html() добавление выбранного блока не работает?
Цитата: Romik
без html() добавление выбранного блока не работает?
дак как код выдернуть больше не знаю
а Вы какие многоуровневые меню используете может я зря мучаюсь..
Не вижу необходимости выдёргивать код. Средствами jquery полученную ноду можете добавить как есть.
Видно придётся что то другое пробовать ..
Вот вам исходник со всеми поясняшками скачать
Выглядит красиво, без обновы страницы, да и настроить можно как угодно, ваша фантазия + красивое представление.
fg-menu настроить не удалось для работы в качестве правого вертикального меню коряво открывается за пределы окна,
накопал новое jeegoocontext_1_3 более корректно работает справа меня устроило уровней по желанию
присоединю файлик вдруг кому то пригодится..