Замена текста в атрибуте HTML тега, например часть url
Сразу скажу что в JavaScript не очень селён. Но поиском пользоватся умею! И прежде чем сюда писать, тут накопал вот этот кусок:
<script language="JavaScript" type="text/javascript"> function repl(a) { var b = { "111": "\u0437\u0430\u043c\u0435\u043d\u0430", "222": "\u043f\u0440\u043e\u0448\u043b\u0430", "333": "\u0443\u0441\u043f\u0435\u0448\u043d\u043e", "4": "!7" }; for (var c in b) { var d = RegExp(c, "gim"); a = a.replace(d, b[c]) } return a }; function who() { all_elements = document.getElementsByTagName("*"); i = 0; for (s = all_elements.length; i < s; i++) if (all_elements[i].tagName != "SCRIPT") { j = 0; for (s_ = all_elements[i].childNodes.length; j < s_; j++) if (all_elements[i].childNodes[j].nodeType == 3) all_elements[i].childNodes[j].data = repl(all_elements[i].childNodes[j].data) } }; </script> </head> <body> <font color="#FF0000">111 222 333 444</font> </body> </html> Но данный скрипт меняет текст только вне атрибутов тегов. А мне надо заменить текст в атрибуте. например тут: <a href="http://www.javascript.ru/forum/111">ссылка рас</a> <a href="http://www.javascript.ru/forum/222">ссылка два</a> <a href="http://www.javascript.ru/forum/333">ссылка три</a> Если не сложно, подскажите что и где нужно заменить в данном скрипте чтоб он мог применяться к атрибутам HTML тегов. Заранее спасибо. |
<div....><a href="http://www.javascript.ru/forum/111">ссылка рас</a></div>
и меняй содержимое внутри тегов <div> использовать можешь не только контейнеры |
Неужели только так сложно? И не как нельзя взять url обработать его, и вернуть на место с заменённым фрагментом?
|
попробуй получить его атрибут через document.getElementById(idэлемента).getAtt ribute(имя атрибута) и заменить через document.getElementById(idэлемента).setAtt ribute....
зачем такой сложный код в примере? function who() { all_elements = document.getElementsByTagName("*"); i = 0; for (s = all_elements.length; i < s; i++) if (all_elements[i].tagName != "SCRIPT") { j = 0; for (s_ = all_elements[i].childNodes.length; j < s_; j++) if (all_elements[i].childNodes[j].nodeType == 3) all_elements[i].childNodes[j].data = repl(all_elements[i].childNodes[j].data) } очень много лишнего и не нужного-точнее всё |
Ну пример показывал как он обрабатывает просто текст.. вне тегов.
только чтоб он сработал автоматом нада "who() " убрать.. я его уже просто вставлял от себя.. и забыл убрать )) я скрипт кнопкой включал.. На мой взгляд скрипт сам посебе удобный.. в одном месте читабельный массив что менять.. и на что менять. Ктому же там легко можно добавить вариантов. Более легкого я ненашёл:blink: |
vasa666,
Вариант... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script language="JavaScript" type="text/javascript"> function repl(a) { var b = { "111": "\u0437\u0430\u043c\u0435\u043d\u0430", "222": "\u043f\u0440\u043e\u0448\u043b\u0430", "333": "\u0443\u0441\u043f\u0435\u0448\u043d\u043e", "4": "!7" }; for (var c in b) { var d = RegExp(c, "gim"); a = a.replace(d, b[c]) } return a }; function who() { all_elements = document.getElementsByTagName("a"); for (var a = 0, c = all_elements.length; a < c; a++) { var b = all_elements[a].href; if (b) all_elements[a].href = repl(b) } }; window.onload=who </script> </head> <body> <a href="http://www.javascript.ru/forum/111">ссылка рас</a> <a href="http://www.javascript.ru/forum/222">ссылка два</a> <a href="http://www.javascript.ru/forum/333">ссылка три</a> </body> </html> |
Работает! то что надо! спасибо большое)
|
Часовой пояс GMT +3, время: 02:07. |