Question

Im trouver jQuery difficile à apprendre car il semble y avoir beaucoup de façons d'écrire la même chose.

En guise d'exercice, je voudrais prendre le texte dans les balises d'ancrage et d'autres choses dans les liens attribut href.

par exemple

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

pour devenir

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

mon premier attemp était

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

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

qui ne marche pas bien le travail que je dois préciser à faire cette action pour chaque lien.

Dois-je utiliser une boucle foreach? Une fonction de .each ()? Ou $ cette notation? Seraient-ils travailler ensemble?

Était-ce utile?

La solution

$('a').text()

renverrait la combinaison de toutes les valeurs de texte nœuds d'ancrage .. Je l'ai fait sur stackoverflow et il m'a donné:

  

"mederlogoutaboutfaqQuestionsTagsUsersBadgesUnansweredAsk   QuestionJquery $ ce ou each () à   spécifiez un lien à la   timejqueryeachthiseditcloseflagchrisadd   commentjqueryeachthisask votre propre   questionjquerythiseachC ++ / Unix   Programmer chez Waterfront International Development   Ltdjobs.stackoverflow.comquestion   feedaboutfaqblogpodcastprivacy   policyadvertising infocontact   usfeedback toujours   welcomestackoverflow.comserverfault.comsuperuser.commetahowtogeek.comdoctype.comcc-wikiattribution   nécessaire "

Par conséquent, vous devez utiliser jQuery.prototype.each afin que vous puissiez enregistrer une référence au texte de chaque ancrage individuel:

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

L'avantage est que chaque fonction exécute dans son propre contexte d'exécution, chaque variable que vous définissez, chaque « texte » déclarée est unique à ce corps de la fonction donc il y a beaucoup plus de contrôle à l'intérieur d'un. chacun.

En ce qui concerne l'accord de boucle de vanille - j'utiliser jQuery.prototype.each dessus parce qu'il est une fonction de niveau supérieur, vous devez assigner une variable à la longueur de la nodeList et commencer à 0, arrêtez-vous à la longueur (ou si l'ordre n'a pas d'importance de faire une marche arrière while) .. cela provoque un peu plus de travail que nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top