Domanda

Im trovando jQuery per difficile da imparare come ci sembra essere molti modi per scrivere la stessa cosa.

Come esercizio Vorrei prendere il testo all'interno di tag di ancoraggio e roba nei link href.

es

<a href="">http://www.something.com</a>

di diventare

<a href="http://www.something.com">http://www.something.com</a>  

il mio primo attemp era

<script type="text/javascript">
$(document).ready(function() {
var text = $('a').text();

$('a').attr( 'href', text );
});
</script>

che pretende molto chiaramente il lavoro come ho bisogno di specificare di fare questa azione per ogni link.

Dovrei usare un ciclo foreach? A) la funzione .each (? O $ questa notazione? Avrebbero tutti lavorare?

È stato utile?

Soluzione

$('a').text()

restituirebbe la combinazione di ogni valore nodi di ancoraggio di testo .. ho appena fatto su StackOverflow e mi ha dato:

  

"mederlogoutaboutfaqQuestionsTagsUsersBadgesUnansweredAsk   QuestionJquery $ questo o ciascuna () per   specificare un link alla   timejqueryeachthiseditcloseflagchrisadd   commentjqueryeachthisask il proprio   questionjquerythiseachC ++ / Unix   Programmatore a Waterfront Internazionale   Ltdjobs.stackoverflow.comquestion   feedaboutfaqblogpodcastprivacy   policyadvertising infocontact   usfeedback sempre   welcomestackoverflow.comserverfault.comsuperuser.commetahowtogeek.comdoctype.comcc-wikiattribution   necessaria "

Pertanto si consiglia di utilizzare jQuery.prototype.each modo da poter risparmiare un riferimento al testo di ogni singolo ancoraggio:

$('a').each(function() {
    var text = $(this).text();
    $(this).attr('href', text );
});

Il vantaggio è che ogni funzione viene eseguito nel proprio contesto di esecuzione, ogni variabile si definisce, ogni 'testo' dichiarato è unico per quel corpo della funzione quindi c'è una molto un maggiore controllo all'interno di una. ciascuna.

Per quanto riguarda la vaniglia ciclo affare - avrei usato jQuery.prototype.each su di esso perché è una funzione di livello superiore, si dovrà assegnare una variabile alla lunghezza del NodeList e iniziare a 0, fermarsi alla lunghezza (o se l'ordine non importa fare un Reverse ciclo while) .. questo provoca solo più lavoro del necessario.

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