Как с помощью jQuery получить информацию из li
<div id="navid" class="navclass"> <ul> <li>Folder 1</a> <ul> <li><a href="#">Sub Item 1.1</a></li> <li><a href="#">Sub Item 1.2</a></li> <li>Folder 2 <ul> <li><a href="#">Sub Item 2.1</a></li> <li><a href="#">Sub Item 2.2</a></li> <li><a href="#">Sub Item 2.3</a></li> </ul> </li> </ul> </li> </ul> </div> Как получить в следующем формате, как, например, для "Sub Item 2.2": alert(путь: 0=>2=>1; текст: Folder 1=>Folder 2=>Sub Item 2.2) |
Цитата:
|
Цитата:
Цитата:
|
<div id="navid" class="navclass"> <ul> <li>Folder 1 <ul> <li><a href="#">Sub Item 1.1</a></li> <li><a href="#">Sub Item 1.2</a></li> <li>Folder 2 <ul> <li><a href="#">Sub Item 2.1</a></li> <li id="el"><a href="#">Sub Item 2.2</a></li> <li><a href="#">Sub Item 2.3</a></li> </ul> </li> </ul> </li> </ul> </div> var $el = $("#el"); var positions = [$el.index()]; var values = [$.trim($el.text())]; $("#el").parents("li").each(function() { $this = $(this); positions.unshift($this.index()); var html = $this.html(); var position = html.indexOf("<", 1); values.unshift($.trim(html.slice(0, position))); }); result = "positions: " + positions + "; values: " + values; alert(result); |
Спасибо !
Но надо без id="el" |
nikolaichIl,
:cray: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ function fn(str, el) { var arr = [], str = "li:contains(" + str + ")", el = $(el); while (el.find(str).length) { el = el.find(str); i = el.siblings().add(el).index(el); arr.push(i) } return arr }; var str = "Sub Item 2.2" alert(fn(str, "#navid").join(" => ")) }); </script> </head> <body> <div id="navid" class="navclass"> <ul> <li>Folder 1 <ul> <li><a href="#">Sub Item 1.1</a></li> <li><a href="#">Sub Item 1.2</a></li> <li>Folder 2 <ul> <li><a href="#">Sub Item 2.1</a></li> <li><a href="#">Sub Item 2.2</a></li> <li><a href="#">Sub Item 2.3</a></li> </ul> </li> </ul> </li> </ul> </div> </body> </html> |
Спасибо !
Но, если можно, дополните до alert(путь: 0=>2=>1; текст: Folder 1=>Folder 2=>Sub Item 2.2) Кроме того текст Sub Itemможет быть не в одном узле <div id="navid" class="navclass"> <ul> <li>Folder 1 <ul> <li><a href="#">Sub Item 1.1</a></li> <li><a href="#">Sub Item 1.2</a></li> <li>Folder 2 <ul> <li><a href="#">Sub Item</a></li> <li><a href="#">Sub Item</a></li> <li><a href="#">Sub Item</a></li> </ul> </li> </ul> </li> </ul> </div> |
|
Профессору надоело...
|
Если человек ставит конкретную задачу -- ему обязательно помогут.
Если человек сам не понимает, чего хочет -- результат соответствующий. |
Часовой пояс GMT +3, время: 00:18. |