Domanda

È questo il modo corretto di farlo?

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

Voglio id = " test " per passare a id = " nextstep " se le richieste = 0.

È stato utile?

Soluzione

Potresti provare:

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

Altri suggerimenti

Questo è esattamente il modo in cui lo faresti, purché lo avvolgi in tag script ...

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

Se stai cercando di attivarlo facendo clic su quell'ancora, allora useresti:

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

MODIFICA: Bene, hai cambiato il contenuto della tua domanda dopo che ho pubblicato questo ...

Devi usare 'setAttribute' per cambiare l'ID del tag anchor.

Hai la parte getElementById ('test') corretta, ma lancia " .setAttribute ('id', 'nextstep'); "

Spero che ti aiuti!

  

if (self.href! = " # ")

C'è il tuo problema. Gli href di link sono canonicalizzati dal browser, quindi un link '#' nella pagina ' http://www.example.com/ "ha un attributo href di" http://www.example.com/# "e non corrisponde alla condizione.

Evita di usare il nome "self", poiché si scontra con il nome dell'oggetto globale (noto anche come "finestra"). Puoi evitare il passaggio goffo di "sé" assegnando il gestore da JavaScript:

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

invece dell'attributo onclick , quindi puoi utilizzare "this" in request (). request () dovrebbe anche return false; per interrompere il collegamento (facendo scorrere il browser verso l'alto). Meglio ancora sarebbe usare un < button > (o < input type = " button " > ), perché è un pulsante di azione e non un link che potresti aprire in una nuova finestra o segnalibro. (Puoi sempre usare i CSS per renderlo meno simile a un pulsante.)

Non utilizzare setAttribute () per HTML, ha problemi in IE non correlati a questo utilizzo. L'impostazione di element.id era già corretta.

Ma tutto questo sembra piuttosto uno strano modo di fare ciò che vuoi fare in ogni caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top