Замена текста в атрибуте 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, время: 08:04. |