Pregunta

¿Es esta la forma correcta de hacerlo?

<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>

<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>

<script language="javascript">
var requests = 2;

function request(self)
{if(self.href != "#")
requests -= 1;

if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>

Quiero id = " prueba " para cambiar a id = " nextstep " si las solicitudes = 0.

¿Fue útil?

Solución

Puedes probar:

document.getElementById('test').setAttribute('id', 'nextstep');

Otros consejos

Así es exactamente como lo harías, siempre y cuando lo envuelvas en etiquetas de script ...

<script language="javascript" type="text/javascript">
if(requests === 0){
    document.getElementById('test').id = "nextstep";
}
</script>

Si está intentando activar esto con el clic de ese ancla, entonces usaría:

<script language="javascript" type="text/javascript">
function changeID(){
    if(requests === 0){
        document.getElementById('test').id = "nextstep";
        alert('TEST!');
    }
}
</script>

<a href="#" id="test" onclick="changeID()">Test</a>

EDITAR: Bueno, usted cambió el contenido de su pregunta después de que publiqué esto ...

Debe usar 'setAttribute' para cambiar la ID de la etiqueta de anclaje.

Tienes la parte getElementById ('prueba') correcta, pero solo arroja " .setAttribute ('id', 'nextstep'); "

Espero que ayude!

  

if (self.href! = " # ")

Ahí está tu problema. Los hrefs de enlace son canonizados por el navegador, por lo que un enlace & # 8216; # & # 8217; en la página & # 8216; http://www.example.com/ & # 8217; tiene un atributo href de & # 8216; http://www.example.com/# & # 8217; y no coincide con la condición.

Evite usar el nombre & # 8216; self & # 8217 ;, ya que choca con el nombre del objeto global (también conocido como & # 8216; window & # 8217;). Puede evitar el paso torpe de & # 8216; self & # 8217; asignando el controlador desde JavaScript:

document.getElementById('load').onclick= request;

en lugar del atributo onclick , puede usar & # 8216; this & # 8217; en solicitud (). request () también debe return false; para detener el enlace que se sigue (haciendo que el navegador se desplace hacia arriba). Mejor aún sería usar un < button > (o < input type = " button " > ), porque es un botón de acción y no un enlace que podría abrir en una nueva ventana o marcador. (Siempre puedes usar CSS para que parezca menos un botón).

No use setAttribute () para HTML, tiene problemas en IE no relacionados con este uso. La configuración de element.id ya estaba bien.

Pero todo esto parece una forma bastante extraña de hacer lo que quieres hacer en cualquier caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top