Pergunta

Esta é a maneira correta de fazer isso?

<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>

Eu quero id = "teste" para alterar para id = "nextStep" se as solicitações = 0.

Foi útil?

Solução

Você poderia tentar:

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

Outras dicas

É exatamente assim que você faria isso, desde que enrole -o em tags de script ...

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

Se você está tentando acionar isso com o clique dessa âncora, usaria:

<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: Bem, você mudou o conteúdo da sua pergunta depois que eu postei isso ...

Você precisa usar o 'setAttribute' para alterar o ID da tag âncora.

Você tem a parte getElementById ('teste') correta, mas basta jogar ".SetAttribute ('id', 'nextstep');"

Espero que ajude!

if (self.href! = "#")

Aí está o seu problema. O link Hrefs é canônico pelo navegador, então um link '#' na página 'http://www.example.com/'tem um atributo href de'http://www.example.com/#'e não corresponde à condição.

Evite usar o nome 'Self', pois ele entra em conflito com o nome do objeto global (também conhecido como 'janela'). Você pode evitar a passagem desajeitada de 'Self', atribuindo o manipulador da JavaScript:

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

ao invés de onclick atributo, então você pode usar 'isto' no request (). solicitação () também deve return false; Para impedir que o link seja seguido (fazendo o navegador rolar até o topo). Melhor ainda seria usar um <button> (ou <input type="button">), porque é um botão de ação e não um link que você pode abrir em uma nova janela ou marcador. (Você sempre pode usar o CSS para fazê -lo parecer menos com um botão.)

Não use o setAttribute () para html, ele tem problemas no IE não relacionado a esse uso. Contexto element.id já estava bem.

Mas tudo isso parece uma maneira estranha de fazer o que você quer fazer em qualquer caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top