2013-06-25 6 views
0

Я хотел бы изменить текст, который находится между этими тегами:Изменить текст между тегами с JavaScript

<div id=thing> 
<a href=link></a>texttochangehere<a href=link2></a> 
</div> 

Но без изменения ссылки. Я попытался заменить только часть, которую я хочу, с помощью innerHTML и подстроки, но, похоже, отменил теги, которые использует другой скрипт.

+0

['textContent'] (https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent) против [' innerHTML'] (https://developer.mozilla.org/en -US/документы/Web/API/element.innerHTML). См. Также ['innerText'] (http://msdn.microsoft.com/en-us/library/ie/ms533899%28v=vs.85%29.aspx). – Teemu

+1

http://stackoverflow.com/a/8118165/2256325 – Sergio

ответ

1

Есть по крайней мере два пути для достижения своей цели:

  1. замены строк и HTML разбора (с использованием innerHTML)
  2. манипуляции DOM настройки текстового узла (используя textContent)
var div = document.getElementById('thing'); 

// replace text in HTML string: 
div.innerHTML = div.innerHTML.replace('texttochangehere','changedtext'); 

// manipulating text node: 
for(var node of div.childNodes){ 
    if(node.nodeType == 3 && node.textContent == 'texttochangehere') 
     node.textContent = 'changedtext'; 
}