Pregunta

Im encontrar jQuery para difícil de aprender, ya que parece que hay muchas formas de escribir la misma cosa.

A modo de ejercicio me gustaría tomar el texto dentro de las etiquetas de anclaje y otras cosas en los enlaces atributo href.

por ejemplo

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

para convertirse

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

mi primer attemp era

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

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

, que duerma con claridad el trabajo que necesito especificar para terminar esta acción para cada enlace.

¿Debo usar un bucle foreach? Una función each ()? O $ esta notación? Tendrían que todo el trabajo?

¿Fue útil?

Solución

$('a').text()

devolvería la combinación de todos los valores de nodos de anclaje de texto .. Yo sólo lo hizo en StackOverflow y me dio:

  

"mederlogoutaboutfaqQuestionsTagsUsersBadgesUnansweredAsk   QuestionJquery $ tal o cada () para   especifique un enlace a una   timejqueryeachthiseditcloseflagchrisadd   commentjqueryeachthisask su propio   questionjquerythiseachC ++ / Unix   Programador en la línea de costa Internacional   Ltdjobs.stackoverflow.comquestion   feedaboutfaqblogpodcastprivacy   infocontact policyadvertising   usfeedback siempre   welcomestackoverflow.comserverfault.comsuperuser.commetahowtogeek.comdoctype.comcc-wikiattribution   requerido "

Por lo tanto se debe utilizar jQuery.prototype.each para que pueda guardar una referencia al texto de cada anclaje individuales:

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

El beneficio adicional es que cada función se ejecuta en su propio contexto de ejecución, cada variable se define, cada 'texto' declarado es único para ese cuerpo de la función así que hay un mucho más control en el interior de un. cada uno.

En cuanto a la cantidad de bucle de vainilla - Me gustaría utilizar jQuery.prototype.each sobre ella, porque es una función de nivel superior, que tendría que asignar una variable a la longitud de la lista de nodos y empezar a 0, se detienen en la longitud (o si el orden no importa hacer un reverso bucle while) .. esto simplemente provoca más trabajo de lo necesario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top