Soy relativamente nuevo en jquery, así que tengo lo que espero será una simple pregunta.
Necesito anexar varios tramos de la línea de elementos en una lista no ordenada.

Esencialmente, cada elemento de la línea que contiene a y tengo que agarrar el contenido de ese lapso y anexar a la parte inferior de la línea de pedido que contiene. He aquí lo que tengo hasta ahora:

Mi código jquery:

  $("ul").ready(function(){
    var Name = $(".name") .text();
    var Content = $(".content") .text();
    $("li") .append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>"); 
 });

El HTML original que necesita para modificar:

<ul>
  <li>
  <span class="name">John Doe</span><br />
  <span class="content">John is an excellent Swimmer</span><br />
  </li>
  <li>
  <span class="name">Jane Doe</span><br />
  <span class="content">Jane loves to play basketball</span><br />
  </li>
</ul>

Aquí está la salida, estoy consiguiendo:

  • John Doe

    Juan es un excelente Nadador

    Juan DoeJane del departamento de educación, información adicional

  • Jane Doe

    Jane le encanta jugar al baloncesto

    Juan DoeJane Doe’sadditional info

Aquí está el resultado deseado:

  • John Doe

    Juan es un excelente Nadador

    John Doe información adicional

  • Jane Doe

    Jane le encanta jugar al baloncesto

    Jane Doe información adicional

Como se puede ver, en lugar de tomar el todo el «Nombre» de var y ponerlos juntos, en lugar de usar el «Nombre» var del artículo de la línea.
Estoy seguro de que es necesario algún tipo de esta, $(this), o .cada llamada, pero me parece que no puede encontrar en la documentación en cualquier lugar.

Alguien puede ayudarme?
Gracias!
Troy

InformationsquelleAutor Troy | 2009-05-13

2 Comentarios

  1. 8

    Probar este

    $("ul > li").each(function() {
        var Name = $(".name", this) .text();
        var Content = $(".content", this) .text();
        $(this).append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>");
    });

    Este bucle a través de cada uno de los LI en la lista UL y tratarlos como entidades individuales. Usted tenía dos grandes problemas. Uno es que no se limita el contexto de su jQuery selección por lo que se hacer tanto «.el nombre de» clases y la combinación de ellos juntos, es por eso que tengo dos nombres. Y luego se fueron sumando los valores de todos los LI objetos.

    • En el .anexar línea, ¿quiere referirme a ello como $(this) en lugar de $(«li») ?
    • great_llama dentro de la función() this se refieren a la li elemento
    • No, esto no funciona… ya sea con el $(this) o $(«li»)
    • en realidad… esto no funcionó, se me ha quitado el .listo llamar por encima de él cuando copiar y pegar. gracias!!!
  2. 0

    Está aquí: http://docs.jquery.com/Core/each#callback

    Me gustaría asignar una clase a todos los LI elementos y, a continuación,

    $(".li-class").each(function(){
        var Name = $(".name", this) .text();
        var Content = $(".content", this) .text();
        $(this) .append("<span class=\"additional\"><a href=\"/addinfo.php\">"+ Name +"'s additional info</a></span>");
    });
    • Lo siento slosd, no funciona.
    • En realidad, me hizo llegar esta funcionando tan bien… he sustituido este con $(this) en la última línea de código.

Dejar respuesta

Please enter your comment!
Please enter your name here