DOM: вытаскиваем текст вне тегов
Анализируя поисковый трафик, я обнаружил вопрос “вытащить текст вне тегов”, делюсь рецептом. Собственно, каждая ситуация уникальна, но в общем случае, нужно отыскать в DOM-структуре некий строго определенный элемент и уже относительно него отыскать нужный нам текст.
В нашем случае документ представляет собой два дива с заданными строго идентификаторами, между которыми расположен искомый текстовый элемент. При помощи getElementById мы на ходим элемент div1, а затем при помощи nextSibling добираемся до текстового узла, ведь он стоит следующим в DOM-структуре. Получить его значение можно при помощи свойства nodeValue.
Вот и весь рецепт.
<html> <head> <title>Hello!</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> function getText() { var div1 = document.getElementById("div1"); div1.nextSibling.nodeValue = "Поменял текст"; } </script> </head> <body> <div id="div1">Предшествующий блок</div> Это текст я хочу получить <div id="div2">Замыкающий блок</div> <input type="button" value="Start!" onclick="getText()"> </body> </html>
В тему: