2012-05-03 4 views
3

Я не знаю, как назвать это, но позвольте мне называть его полу-внутренним текстом.Как заменить текст тега HTML

Пример

<div id='myDiv'> 
    This is the semi-inner text 
    <div id='other'></div> 
    This is the semi-inner text 
<div> 

Я хочу удалить/заменить те This is the semi-inner text с помощью JQuery.

Как я могу это сделать?

+0

обернуть его в '<пролет класс = "semiTxt">' и заменить текст внутри него с помощью JS – Bongs

+0

вас должен обернуть его span, div, p или что-то еще. Это не действительная html-страница, если какой-либо текст не завернут. – benck

ответ

3

Если вы заботитесь только о дочерних узлов ...

$('#myDiv').contents().filter(function() { 
    return this.nodeType == 3 
}).each(function() { 
    this.data = this.data.replace(/This is the semi-inner text/g, 'swapped'); 
});​ 

jsFiddle.

Если вы хотите проверить все узлы-потомки, запустите функцию recurse, когда она обнаружит узел элемента (this.nodeType == 1).

1

Используйте содержимое() и отфильтровать все NODETYPE, равное 3, и удалить их:

$('#myDiv').contents().filter(function() { 
    return this.nodeType == 3; 
}).remove(); 
0

Используйте следующий код для замены содержимого

$("#other").html("your code"); 

и пользователь обернуть код пядь тег с идентификатором

0

Самым простым способом, чтобы поместить его в промежутке с идентификатором, как так:

<div id='myDiv'> 
    <span id="myInnerText">This is the semi-inner text</span> 
    <div id='other'></div> 
    This is the semi-inner text 
<div> 

Затем замените его следующим образом:

$("#myInnerText").text("replacement text"); 
2
$('#myDiv') 
    .contents() 
    .filter(function() { 
     return this.nodeType == 3; 
    }) 
    .each(function() { 
     $(this).remove(); 
    }); 
0

вы также можете сделать это следующим образом:

target_div = $("#myDiv") 
    reg_exp = /This is the semi-inner text/g; 
    new_text = "some other text" 

    target_div.html(
    target_div.html() 
     .replace(
     new RegExp(reg_exp), 
     new_text) 
     ); 
}); 

Demo