JQuery: Получите содержание тега, исключая вложенные теги

У меня есть некоторый HTML как следующее:

<span id="A">Text I'm interested in
  <span id="B">Other crap I don't care about</span>
</span>

Я надеюсь получать текстовое содержание промежутка "A", исключая любые вложенные теги (т.е. содержание промежутка "B" в вышеупомянутом примере). Я пытаюсь получить текстовое содержание, не содержимое HTML. Кроме того, в моем особом случае я знаю, что всегда будет некоторый текст в промежутке до любых других тегов, но я интересуюсь менее ограниченным решением также.

Простой-но-неуклюжий подход, с которым я рассмотрел движение, просто делает $ (" #A") .html () и затем анализирует через, пока я не поразил незавершенное" <" но такое чувство, что должно быть более чистое решение.

5
задан Dane B 5 January 2010 в 15:58
поделиться

2 ответа

Я вполне уверен, что нет встроенного способа сделать это - хотя вы могли бы поискать плагин, он может существовать. Кто-то другой опубликовал метод .text() (но удалил сообщение), который даст вам ВСЕ текст, минус тэги, что означает, что вы получите "Текст, который меня интересует Другое дерьмо, которое меня не интересует" - не то, что вы хотите.

EDIT

Хорошо, я решил, что мне это интересно, так что я потратил некоторое время. Вот решение :)

    copyOf = $('#A').clone();
    copysKids = copyOf.children();
    copysKids.remove();

    alert(copyOf.text());

Мы делаем клон узла, из которого вы пытаетесь вытащить текст - мы не хотим работать с оригиналом, потому что это изменит страницу. Затем мы захватываем коллекцию всех дочерних узлов и взламываем их. Остальной текст - это текст, который вы искали.

6
ответ дан 14 December 2019 в 13:37
поделиться
[

] Вы должны получить его для себя [

]. [
$("#A").find("#B").remove().end().text());
] [

] Это очень специфично для вашей проблемы. Не уверен, есть ли общее решение, хотя [

]
0
ответ дан 14 December 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: