Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сделать ссылку в тексте кликабельной внутри определенного тега (https://javascript.ru/forum/misc/22923-sdelat-ssylku-v-tekste-klikabelnojj-vnutri-opredelennogo-tega.html)

nule 05.11.2011 19:39

Сделать ссылку в тексте кликабельной внутри определенного тега
 
Приветствую!
Задача сделать кликабельными ссылки внутри тега td класса "code".
Код:

function codelinks() {
var tdclasses = document.getElementsByTagName("td");
codes = new Array();
for (i=0; i<tdclasses.length; i++ )
if (tdclasses[i].className == "code"){
codes.push(tdclasses[i]);
}
//сформировали массив из td "code"
codeshtml= new Array();
for (j=0; j<codes.length; j++ )
codeshtml.push(codes[j].innerHTML);
//сформировали массив из html внутри td "code"
var ss=/(http:\/\/.+\.[a-z]{2,3})/gi;
for (k=0; k<codeshtml.length; k++ )
document.getElementsByTagName("td").innerHTML=codeshtml[k].replace(ss, "<a href='$1'>$1</a>");//тут всякая отсебятина
 }
  window.onload = codelinks;

Не могу правильно сформулировать последнюю строку, помеченную как отсебятина. :(
Помогите пожалуйста.
Спасибо!

griffonn 05.11.2011 23:32

function clickable(){
var codeElems = $(".code"); //jQuery
var ss=/(http:\/\/.+\.[a-z]{2,3})/gi;
for (var c=0; c<codeElems.length; c++){
codeElems[c].innerHTML=codeElems[c].innerHTML.replace(ss, '<a href="$1">$1</a>');
}
}

первая строчка внутри функции - селектор для классов из jQuery, вся первая часть вашего кода в одну строку
не забудьте учесть, что ссылки могут быть и без http://, но с www, https://, ftp://, mailto: etc. рекомендую проверять домен по списку готовых


Часовой пояс GMT +3, время: 07:22.