Alterando o valor de "id =" com document.getElementById
-
06-07-2019 - |
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.
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.