2013-07-15 10 views
8

Ho provato il seguente codice per aggiungere href al tag all'interno di un td. sta funzionando bene mentre lo faccio in console. Ma quando provo lo stesso nel mio codice non funziona. Qualcuno può dirmi il motivo?jQuery funziona in console ma non nel codice originale

<script> 
    $("table tbody tr td a").attr('href','http://www.google.com'); 
</script> 
<table> 
    <tr> 
     <td><a >Hai</a></td> 
    </tr> 
</table> 
+0

avete allegato jquery? – stackErr

+0

Sì, ho allegato jQuey 1.9.1 –

+5

['$ (documento) .ready()'] (http://learn.jquery.com/using-jquery-core/document-ready/) – lonesomeday

risposta

4

metterlo in una sezione pronto:

<script type="text/javascript"> 
$(document).ready(function() { 
$("table tbody tr td a").attr('href','http://www.google.com'); 
}); 
</script> 
7

L'elemento non esiste quando il jQuery è in esecuzione. Devi mettere i tuoi gestori all'interno di una funzione pronta.

<script type="text/javascript"> 
$(function() { 
    $("table tbody tr td a").attr('href','http://www.google.com'); 
}); 
</script> 

$(function() {}); è la scorciatoia per $(document).ready(function() {});

8

Usa document.ready()

$(document).ready(function() { 
    $("table tbody tr td a").attr('href','http://www.google.com'); 
} 

È necessario assicurarsi che il documento è già caricato, prima di provare a manipolare il DOM.

Maggiori informazioni su: http://api.jquery.com/ready/

+0

Grazie amico..Io non sapevo $ (document) .ready() è stato un must..What un errore stupido .. !!!! –

+1

Quindi ... gli dai la risposta? –

4

Il codice viene eseguito prima il DOM è pronto e l'elemento in realtà esiste, provare in questo modo:

<script> 
    $(document).ready(function(){ 
     $("table tbody tr td a").attr('href','http://www.google.com'); 
    }); 
</script> 

Il motivo per cui funziona su console è perché l'elemento <a> già esiste quando si esegue il codice ...

JSBin Demo

4

Il JS sta sparando prima che venga creato il codice HTML.

<table> 
    <tr> 
     <td><a >Hai</a></td> 
    </tr> 
</table> 
<script> 
    $(function() { 
     $("table tbody tr td a").attr('href','http://www.google.com'); 
    }); 
</script> 
Problemi correlati