У меня есть некоторый 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 () и затем анализирует через, пока я не поразил незавершенное" <" но такое чувство, что должно быть более чистое решение.
Я вполне уверен, что нет встроенного способа сделать это - хотя вы могли бы поискать плагин, он может существовать. Кто-то другой опубликовал метод .text() (но удалил сообщение), который даст вам ВСЕ текст, минус тэги, что означает, что вы получите "Текст, который меня интересует Другое дерьмо, которое меня не интересует" - не то, что вы хотите.
EDIT
Хорошо, я решил, что мне это интересно, так что я потратил некоторое время. Вот решение :)
copyOf = $('#A').clone();
copysKids = copyOf.children();
copysKids.remove();
alert(copyOf.text());
Мы делаем клон узла, из которого вы пытаетесь вытащить текст - мы не хотим работать с оригиналом, потому что это изменит страницу. Затем мы захватываем коллекцию всех дочерних узлов и взламываем их. Остальной текст - это текст, который вы искали.
] Вы должны получить его для себя [
]. [$("#A").find("#B").remove().end().text());
]
[] Это очень специфично для вашей проблемы. Не уверен, есть ли общее решение, хотя [
]