2013-05-24 4 views
0

Мое приложение динамически получает HTML-код с моего сайта и сохраняет его как строку.JS: Заменить innerHTML тегов

Вот пример:

Lorem ipsum <a href="http://www.google.com">Click Here</a> 
Lorem ipsum <a href="http://www.google.com">Click Somewhere</a> 
Lorem ipsum <a href="http://www.google.com">sdfsdf</a> 
Lorem ipsum <a href="http://www.google.com">djmhfhb</a> 
Lorem ipsum <a href="http://www.google.com">fgbnfgn</a> 

Что теперь мне нужно, это скрипт, который берет на себя все тэги и заменяет их innerHTML с «LINK». Результат должен быть:

Lorem ipsum <a href="http://www.google.com">LINK</a> 
Lorem ipsum <a href="http://www.google.com">LINK</a> 
Lorem ipsum <a href="http://www.google.com">LINK</a> 
Lorem ipsum <a href="http://www.google.com">LINK</a> 
Lorem ipsum <a href="http://www.google.com">LINK</a> 

Я обычно использую JQuery, как это:

$(a).html = "Link" 

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

Я не использую PHP. Я использую любой вид JS, который помогает мне. Любые идеи? Большое спасибо за Вашу помощь!

ответ

0

это то, как вы это сделать с помощью JQuery:

$('a').text('LINK'); 
0

Попробуйте этот код в JS скрипт дают идентификатор на Анчар теге

<a href="www.google.com" id="hello" />Click<a>  

и использовать, как это

$('#hello').html('LINK'); 

или

$('a').text('LINK'); 
+0

Большое спасибо! – Florian

0

Неясно, почему вы не хотели бы использовать JQuery .html() или .text() в вашем приложении, но манипулировать строку, содержащую html вместо этого?

Делать это потребует некоторого рода Regex шаблона, как этот

var pattern = "<a .*?href=['""](.+?)['""].*?>(.+?)</a>"; 

, а затем использовать string.replace переходящая в объекте RegExp

Что-то вроде

var regex = new RegExp(pattern); 
"yourString".replace(regex , "LINK"); 
0

IF вас 'получая эти разметки как строку, а не фрагмент DOM, вы можете попробовать является: только

http://jsfiddle.net/YVb5k/

var str="HTML markup"; 
if ((new DOMParser()).parseFromString("", "text/html")) { 
    var html = (new DOMParser()).parseFromString(str, "text/html"); 
} else { 
    var html = document.implementation.createHTMLDocument(""); 
    html.body.innerHTML = str; 
} 
var as = html.getElementsByTagName("a"); 
for (var i = 0; i < as.length; i++) { 
    as[i].innerHTML = "LINK"; 
} 
console.log(html.body.innerHTML); 

работы в IE> = 9, хотя.

Смежные вопросы