Это сложно, потому что текст находится в текстовом узле, а jQuery не поддерживает текстовые узлы, только элементы.Кроме того, поскольку разные браузеры по-разному обрабатывают пробелы в коде HTML, вы получаете разные наборы узлов в разных браузерах.Вы не можете просто получить узлы и полагаться на то, что нужный вам текстовый узел постоянно находится в одном и том же индексе.
Вы можете использовать jQuery, чтобы найти элемент, и использовать DOM, чтобы получить всеузлы внутри него.
Пример HTML:
<div id="test">
<strong>1)</strong>
TEXT THAT I ONLY NEED
<p>some par</p>
<ul>
<li>asdf</li>
<li>qwerty</li>
</ul>
</div>
Используйте jQuery, чтобы найти div, используйте [0]
, чтобы получить элемент DOM из объекта jQuery, и свойство childNodes
чтобы получить его потомков:
var nodes = $('#test')[0].childNodes;
Затем вы можете использовать jQuery для циклического перемещения по узлам, чтобы найти узел, являющийся элементом strong
:
var index;
$.each(nodes, function(i,e){
if (e.tagName == 'STRONG') {
index = i;
return false;
}
});
Теперь вы можете использоватьDOM, чтобы получить текстовое значение из следующего узла:
var text = nodes[index + 1].nodeValue;