Заголовок изменился, но только в сгенерированном коде. Так работает JS - он работает только с презентацией. Попробуйте использовать панель инструментов Webdeveloper для Firefox, потому что она имеет возможность показывать сгенерированный код вместе с оригинальным. Если вам нужен другой способ, подумайте об использовании серверного программирования.
Мои наблюдения:
Никогда не смешивайте JS с HTML. Если вам нужно обновить ваш код, это будет намного проще - найдите «ненавязчивый JS», чтобы лучше понять проблему. Поэтому <a href="javascript:...">
или <a href="#" onclick="...">
- плохая практика кодирования.
Не используйте большие пакеты JS, такие как JQuery, для простых задач. Они хороши, только если используются с полным потенциалом.
Вам действительно нужно выполнять HTML-манипуляции на лету и почему? Важна ли всплывающая подсказка для вашего кода? Кому это нужно: конечным пользователям или администратору? А как насчет доступности?
ИНФОРМАЦИЯ о первом блоке кода:
- Если мы не знаем, какую ссылку использовать, мы должны собрать их все
- и затем проверить коллекцию на событие onclick
- Предложения:
- используйте лучший обработчик событий;)
- собирать ссылки только с определенной части страницы (основной или навигационный раздел) для повышения скорости
- ПРЕДОСТЕРЕЖЕНИЯ:
- это может замедлить рендеринг страницы
- Атрибут title жестко закодирован и одинаков для всех ссылок
<code>
function changeTitle1(){
// find the array of links inside the document
var a = document.getElementsByTagName('a');
// test the array against onclick event
for (var i = 0, j = a.length; i
- ИНФОРМАЦИЯ о втором блоке кода:
- Мы точно знаем, какую ссылку проверять
- Предложение:
- используйте лучший обработчик событий;)
- ПРЕДОСТЕРЕЖЕНИЯ:
- это можно использовать только для одного элемента
- атрибут заголовка жестко закодирован и одинаков для всех ссылок
function changeTitle2(){
// find the link
var a = document.getElementById('action_link');
// onclick event
a.onclick = function() {
try{
// change title value
this.title = 'This unique click happened as well!';
// or use setAttribute() method like this
/* this.setAttribute('title', 'This unique click happened as well!'); */
// disable default link action
return false;
}
// clear memory leaks with try-finally block
finally{a = null;}
}
}
window.onload = function() {
changeTitle1();
//changeTitle2();
}
@ spiro: Относительно вашего второго вопроса о текущем состоянии ссылок и изменении их CSS ... ну, используйте CSS:)
Короткая версия:
<style type="text/css" media="screen">
#home #current-home a,
#contact #current-contact a,
#about #current-about a
{/* declarations to style the current state */}
</style>
</head>
<body id="home"> <!-- OR body id="contact" OR body id="about" -->
<a href="#" title="Home" class="current-home">Home</a>
<a href="#" title="Contact" class="current-contact">Contact</a>
<a href="#" title="About us" class="current-about">About us</a>
</code>
Длинная версия: http://www.456bereastreet.com/archive/200503/setting_the_current_menu_state_with_css/
(читайте также комментарии)
Примечание: необходимо ли отображать ссылку , если вы уже находитесь на текущей странице?