Domanda

Ciao, sto provando qualcosa .. Stavo leggendo documentazioni sui forum di Jquery, questo sito web in precedenza aveva posto domande relative a questo argomento .. nessuno in realtà risponde alla mia domanda, quindi chiederò invece .. ecco l'affare

  <div class="entry">
week
<span>some text</span>
<p>DKK</p>
<input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />

</div>

Quindi ho usato un ciclo while per creare un mucchio di questi, quindi non devo copiarli manualmente .. asp li genera .. ora vedi la sezione p che dice DKK .. ora per me per non scrivere tutto manualmente vorrei ogni div, p da aggiungere con il valore dell'input all'interno di quel div, ora ecco cosa ho fatto con Jquery

$(document).ready(function() {
     $("input").each(function () {
                 var element_value = $(this).val();
                 $(this).closest("p").append(element_value + ",-");
                  }); 
 }); 

Quindi quello che ho provato a fare è esaminare ogni input e raccogliere il loro valore, quindi trovare il tag p più vicino e aggiungerlo con il suo valore, ora il risultato corretto per questo esempio sopra sarebbe

<p>DKK 75,-<p>

poiché il valore di input è 75 ed è stato incluso nella funzione append, - aggiungi anche questo codice non funziona, tuttavia se lo metto

$(this).parents("div.entry").append(element_value + ",-");

instead of

$(this).closest("p").append(element_value + ",-");

I risultati corretti appaiono ma non esattamente dove li voglio .. speriamo che qualcuno mi possa aiutare, grazie

È stato utile?

Soluzione

Se leggi la documentazione per il più vicino () vedrai che guarda solo verso l'alto, non lateralmente:

  

Ottieni un set di elementi contenente l'elemento padre più vicino che corrisponde al selettore specificato, incluso l'elemento iniziale.

Puoi farlo per trovare il < p > precedente dall'input:

$(this).prev("p").append(element_value + ",-");

O più esplicito:

$(this).closest("div.entry").find("p").append(element_value + ",-");

Che quindi non dipenderebbe da quale lato del < p > sembra che l'input sia attivo.

Altri suggerimenti

Prova questo:

$(this).parents("div.entry").find('p:first').append(element_value + ",-");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top