jQuery будет выбирать только узлы элементов.
$('p:first')
фактически выбирает первый элемент <p>
. Для доступа к содержащемуся текстовому узлу вам потребуется доступ к firstChild
на узле DOM:
alert($('p:first')[0].nodeName) // alerts P <-- element node
alert($('p:first')[0].firstChild.nodeName) // alerts #text <-- text node
DEMO
Возможно, у вас также есть недоразумение: элементы, содержащие текст, не являются текстовыми узлами. Каждый элемент, который вы создаете с тегами <..>
, является узлом элемента.
Пример:
<p>
Foo
<span>Bar</span>
Baz
</p>
Элемент <p>
имеет трех дочерних элементов: два текстовых узла , содержащие текст Foo
и Baz
, и элементный узел <span>
, который сам имеет текстовый узел в качестве дочернего элемента, содержащий Bar
.