Текст возвращаемого узла (нерекурсивный)

Я хотел бы вернуть значение узла таблицы. Однако метод text () сбрасывает все дерево DOM и возвращает строку всех вложенных узлов (ячейка таблицы может содержать текст и html). Как только я извлечу строку узла, я хотел бы изменить его и записать обратно на узел. Измененный текст состоит из текста и html.

Есть ли какой-либо jquery-метод (или, возможно, Javascript), который можно использовать для получения текста (без перехода к дочерним элементам) и другой функции, которую я могу использовать для написания текста + html (plain text () и html () won ‘ t работают в этом случае, поскольку они будут переопределять дочерние узлы)?

Привет, Макс

Чтобы получить текст из дочерних текстовых узлов, вы можете сделать это:

var text = $('selector').contents().map(function() { // If it is a textNode, return its nodeValue if(this.nodeType == 3) return this.nodeValue; }).get().join('');​​​​​​ 

Я не знаю точно, что вы хотите сделать с текстом, но если вы хотите обработать его, когда вы идете и замените его новым текстом / html, вы должны будете сделать .each() вместо этого и использовать .replaceWith() .

 $('selector').contents().each(function() { if(this.nodeType == 3) { // do something with the text $(this).replaceWith('new processed value'); } });​​​​​​ 

Вот пример: http://jsfiddle.net/ZNjCW/