25.07.2015, 19:13
|
Интересующийся
|
|
Регистрация: 06.10.2011
Сообщений: 20
|
|
Как с помощью 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)
Последний раз редактировалось nikolaichIl, 25.07.2015 в 20:30.
|
|
25.07.2015, 19:54
|
|
Аспирант
|
|
Регистрация: 11.07.2015
Сообщений: 33
|
|
Сообщение от nikolaichIl
|
0=>2=>2
|
А что это за цифры? Может, все таки, 0=>2=>1 ?
|
|
25.07.2015, 20:32
|
Интересующийся
|
|
Регистрация: 06.10.2011
Сообщений: 20
|
|
Сообщение от jasper-blondin
|
А что это за цифры? Может, все таки, 0=>2=>1 ?
|
Да, конечно, исправил
Сообщение от nikolaichIl
|
Как получить в следующем формате, как, например, для "Sub Item 2.2":
alert(путь: 0=>2=>1; текст: Folder 1=>Folder 2=>Sub Item 2.2)
|
И, если это возможно, пожалуйста, без регулярных выражений.
Последний раз редактировалось nikolaichIl, 25.07.2015 в 20:51.
|
|
25.07.2015, 21:28
|
|
Аспирант
|
|
Регистрация: 11.07.2015
Сообщений: 33
|
|
<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);
|
|
25.07.2015, 21:50
|
Интересующийся
|
|
Регистрация: 06.10.2011
Сообщений: 20
|
|
Спасибо !
Но надо без
id="el"
Последний раз редактировалось nikolaichIl, 25.07.2015 в 21:55.
|
|
25.07.2015, 23:14
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
nikolaichIl,
<!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>
|
|
26.07.2015, 14:09
|
Интересующийся
|
|
Регистрация: 06.10.2011
Сообщений: 20
|
|
Спасибо !
Но, если можно, дополните до
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>
Последний раз редактировалось nikolaichIl, 26.07.2015 в 14:33.
|
|
26.07.2015, 14:52
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
nikolaichIl,
Сообщение от nikolaichIl
|
Но, если можно, дополните до
|
=> Учебник || Работа
|
|
26.07.2015, 14:56
|
Интересующийся
|
|
Регистрация: 06.10.2011
Сообщений: 20
|
|
Профессору надоело...
|
|
26.07.2015, 16:45
|
|
Аспирант
|
|
Регистрация: 11.07.2015
Сообщений: 33
|
|
Если человек ставит конкретную задачу -- ему обязательно помогут.
Если человек сам не понимает, чего хочет -- результат соответствующий.
|
|
|
|