Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / вложенные <div> - как извлечь текст? / 12 сообщений из 12, страница 1 из 1
21.05.2013, 23:41
    #38267384
ХБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
имеется вот такая конструкция:
Код: html
1.
2.
3.
<div id="div1">текст 1
   <div id="div2" style="display:none">текст 2</div>
</div>


есть jQuery селектор
$("#div1").<???>
как мне выбрать текст 1?
Я понимаю, что можно выбрать $("#div1").html() и из него выкинуть все между "<"и ">"

а как-то по-другому можно?
...
Рейтинг: 0 / 0
21.05.2013, 23:55
    #38267396
ХБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
лучший способ найти ответ - запостить вопрос на sql.ru, после этого ответ приходит в голову сам собой:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
  v_text=$("#div1")
           .clone()
           .children()
           .remove()
           .end()
           .text();
  alert(v_text);
...
Рейтинг: 0 / 0
22.05.2013, 01:13
    #38267460
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
ХБ, почитайте документацию для метода .children() . Там есть интересное замечание:.children()Note also that like most jQuery methods, .children() does not return text nodes; to get all children including text and comment nodes, use .contents() .
...
Рейтинг: 0 / 0
22.05.2013, 01:23
    #38267464
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
skyANA,

автор в курсе — почитай решение _внимательно_
...
Рейтинг: 0 / 0
22.05.2013, 01:42
    #38267481
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
Antonariy, почитал, так и не понял зачем использовать .clone().children().remove().end() вместо .contents().first().
Может не понял из-за того, что второй час ночи?
...
Рейтинг: 0 / 0
22.05.2013, 05:12
    #38267510
ХБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
skyANAAntonariy, почитал, так и не понял зачем использовать .clone().children().remove().end() вместо .contents().first().
Может не понял из-за того, что второй час ночи?
Вот как работает .clone().children().remove().end():
создается копия объекта $("#div1")
выбираются все его вложенные объекты
затем они удаляются
выбирается начальный объект из стека
выбирается его text()
теперь, надеюсь, понятно?
Если не поняли, сообщите пожалуйста, я дам оригинальную ссылку.
Ваш метод .contents()
.first()
.text()
даёт те же результаты, так что это вполне приемлемый вариант.
Спасибо.
...
Рейтинг: 0 / 0
22.05.2013, 08:13
    #38267585
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
skyANAAntonariy, почитал, так и не понял зачем использовать .clone().children().remove().end() вместо .contents().first().
Может не понял из-за того, что второй час ночи?Потому что автор не знал про существование contents(), но, обладая мозгом, придумал инверсивное решение.
...
Рейтинг: 0 / 0
22.05.2013, 10:55
    #38267852
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
Antonariy, так я и обратил его внимание на замечание, где упоминается .contents() . Почитай _внимательно_
...
Рейтинг: 0 / 0
22.05.2013, 11:05
    #38267880
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
ХБskyANAAntonariy, почитал, так и не понял зачем использовать .clone().children().remove().end() вместо .contents().first().
Может не понял из-за того, что второй час ночи?
Вот как работает .clone().children().remove().end():
создается копия объекта $("#div1")
выбираются все его вложенные объекты
затем они удаляются
выбирается начальный объект из стека
выбирается его text()
теперь, надеюсь, понятно?
Если не поняли, сообщите пожалуйста, я дам оригинальную ссылку.
Ваш метод .contents()
.first()
.text()
даёт те же результаты, так что это вполне приемлемый вариант.
Спасибо.Я понял Ваше решение.

Только зачем так сложно? С DOM плохо знакомы?

Исходя из структуры DOM "текст 1" - это первый дочерний узел (текстовый) элемента <div id="div1">.
Задача сводится к его получению: к получению первого дочернего узла.
Проблема в том, что у него тип текстовый, следовательно .children() его не вернёт, следовательно используем .contents().
...
Рейтинг: 0 / 0
22.05.2013, 11:10
    #38267896
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
skyANA,

у тебя режим кэпа закоротило? всем все стало понятно еще ночью.
...
Рейтинг: 0 / 0
22.05.2013, 11:16
    #38267913
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
Antonariy, меня твоё хамство и "почитай _внимательно_" закоротило.
...
Рейтинг: 0 / 0
22.05.2013, 11:55
    #38268021
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вложенные <div> - как извлечь текст?
В этих случаях пользуются удобным интерфейсом.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / вложенные <div> - как извлечь текст? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]