Рассмотрите следующий HTML:
<td>
Some Text
<table>.....</table>
</td>
Я должен управлять "Некоторым текстом" текст td
элемент. Я не должен касаться элемента таблицы в этом td
.
Так, просто например, возможно, я хочу заменить весь "e". Я попробовал несколько подходов .text jQuery () и .html (). Я, кажется, всегда выбираю что-то из дочерней таблицы, которой я не должен касаться. Кроме того, к сожалению, я не могу перенести "Некоторый текст" в промежуток или отделение.
$(function(){
$('td').contents().each(function(){
if(this.nodeType === 3)
$(this).replaceWith(this.wholeText.replace(/e/g, '#'));
});
});
или как вы предложили
$('td').contents().each(function(){
if(this.nodeType === 3)
this.data = this.wholeText.replace(/e/g, '#');
});
.contents ()
доставляет все элементов, включая textNodes .
Если вы хотите сделать что-то для каждого фрагмента текста в td, вы можете просто перебирать их с помощью цикла:
var nodes=tdEl.childNodes;
for(var i=0; i<nodes.length; ++i){
if(nodes[i].nodeType===3){ // 3 means "text"
nodes[i].data = nodes[i].wholeText.replace(/e/g, '@');
}
}
Я правильно понял, что вы ищете?
Вы можете использовать jQuery, если вы уже загружаете его для других вещей, но я бы не стал загружать библиотеку размером 24 кб для маленького кусочка кода выше.