Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как с помощью jQuery получить текст из li (https://javascript.ru/forum/jquery/57219-kak-s-pomoshhyu-jquery-poluchit-tekst-iz-li.html)

nikolaichIl 25.07.2015 02:08

Как с помощью jQuery получить текст из li
 
<ul>
  <li>Folder 1</a>
    <ul>
      <li>Folder 2
        <ul>
          <li><a href="#">Sub Item</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

Как с помощью jQuery получить в отдельные переменные тексты
"Folder 1"
"Folder 2"
"Sub Item"

рони 25.07.2015 02:51

nikolaichIl,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

вариант
<!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(){
var arr = $("ul *").contents().filter(
             function() {
                 return (this.nodeType == 3 && /\S/.test(this.nodeValue));
             }
         )
arr = $.map(arr, function(el){
  return  $.trim(el.nodeValue);
});
alert(arr)
});

  </script>
</head>

<body>

<ul>
 <li>Folder 1
 <ul>
 <li>Folder 2
 <ul>
 <li><a href="#">Sub Item</a></li>
 </ul>
 </li>
 </ul>
 </li>
 </ul>

</body>

</html>

nikolaichIl 25.07.2015 11:20

Спасибо!
А можно без регулярных выражений?
Кроме того небольшое изменение
<div id="navid" class="navclass">
  <ul>
    <li>Folder 1</a>
      <ul>
        <li>Folder 2
          <ul>
            <li><a href="#">Sub Item</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

Как с помощью jQuery получить в РАЗНЫЕ - не в массив, переменные тексты
"Folder 1"
"Folder 2"
"Sub Item"

Как с помощью jQuery получить в переменную текст "Folder 1"
Как с помощью jQuery получить в переменную текст "Folder 2"
Как с помощью jQuery получить в переменную текст "Sub Item"

jasper-blondin 25.07.2015 12:28

Цитата:

Сообщение от nikolaichIl (Сообщение 381455)
Как с помощью jQuery получить в переменную текст "Folder 1"
Как с помощью jQuery получить в переменную текст "Folder 2"
Как с помощью jQuery получить в переменную текст "Sub Item"

Присвоить переменным элементы массива.

var $firstLi = arr[0];
var $secondLi = arr[1];
var $thirdLi = arr[2];

nikolaichIl 25.07.2015 12:49

Спасибо!
А можно без регулярных выражений?

рони 25.07.2015 13:57

Цитата:

Сообщение от nikolaichIl
А можно без регулярных выражений?

можно если вы напишите html в одну строку без переносов и пробелов между тегами

nikolaichIl 25.07.2015 17:42

Вопрос о решении без регулярных выражений остался, к сожалению, без ответа.

Цитата:

Сообщение от nikolaichIl
html в одну строку без переносов и пробелов между тегами

- это, извините, плохо.
Дополнен код:
<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)


Наверное, это другая тема - http://javascript.ru/forum/jquery/57...iyu-iz-li.html

jasper-blondin 25.07.2015 19:59

Цитата:

Сообщение от nikolaichIl (Сообщение 381486)
- это, извините, плохо.

Это, как раз, очень удобно.
А какова причина отказа от использования регулярных выражений?

Sigizmund2012 27.07.2015 13:38

Цитата:

Сообщение от jasper-blondin
А какова причина отказа от использования регулярных выражений?

Не шарит он в них походу.


Часовой пояс GMT +3, время: 21:43.