Как с помощью 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, время: 15:49. |