El título ha cambiado, pero solo en el código generado. Así es como funciona JS: aborda solo con presentación. Intenta usar la barra de herramientas Webdeveloper para Firefox porque tiene la opción de mostrar el código generado junto con el original. Si necesita alguna otra forma, piense en usar alguna programación del lado del servidor.
Mis observaciones:
nunca se mezclan JS con HTML. Si necesita actualizar su código, será mucho más fácil: busque "JS discreta" para obtener una mejor comprensión del problema. <a href="javascript:...">
o <a href="#" onclick="...">
es, por lo tanto, una mala práctica de codificación.
No utilice grandes paquetes JS como JQuery para tareas simples. Son buenos solo si se usan con todo su potencial.
¿Realmente necesita realizar manipulación de HTML sobre la marcha y por qué? ¿La información sobre herramientas del título es importante para tu código? ¿Quién debería beneficiarse con esto: usuarios finales o administradores? ¿Qué hay de la accesibilidad?
INFO en el primer bloque de código:
- Si no sabemos lo que enlace a utilizar, tiene que recoger todos ellos
- y luego probar la colección contra el evento onclick
- Sugerencias:
-
- uso una mejor controlador de eventos;)
-
- enlaces cobrar solamente de una parte determinada de la página (principal o de navegación div) para mejorar la velocidad
- salvedades:
- esto puede ralentizar la renderización de páginas
- título atributo es codificado y lo mismo para todos los enlaces
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
- INFO en el segundo bloque de código:
- sabemos exactamente qué enlace para comprobar
- Sugerencia:
-
- usar un mejor control de eventos;)
- salvedades:
- esto sólo se puede utilizar en un solo elemento
- título atributo está codificado y lo mismo para todos los enlaces
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: En cuanto a su segunda pregunta acerca de los vínculos del estado actual y el cambio de su CSS ... así, el uso de CSS :)
versión corta:
<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>
Versión larga: http://www.456bereastreet.com/archive/200503/setting_the_current_menu_state_with_css/ (lea también los comentarios)
Nota: es necesario mostrar el enlace si ya está en la página actual?
Aunque no está usando jQuery, está usando la manipulación DOM directa. ¿Por qué nadie sabe? –
He utilizado su código pero arrojando el error "Objeto esperado". ¿Qué debería hacer ahora? –
¿Por qué complicar las cosas al agregar jquery a la mezcla? Esto es trivial dhtml. –