Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [jquery] Traversing per trovare div precedente

    Ciao a tutti,
    ho la necessità di scrivere in un div che è presente prima del div attuale. Di seguito la struttura:
    codice:
    <div class="row-fluid">
    <div class="span1" style="padding-top: 10px;">
    &nbsp;
    </div><div class="span3">
    <div class="control-group">
    <div class="controls" style="border: currentColor; border-image: none; margin-left: 0px;">
    <div class="input-prepend">
    <span class="add-on">€</span>
    <input name="from5" class="input-small" aria-required="true" type="text" value="1002" data-rule-digits="true" data-rule-required="true">
    </div>
    </div>
    </div>
    </div>
    <div class="span3">
    <div class="control-group">
    <div class="controls" style="border: currentColor; border-image: none; margin-left: 0px;">
    <div class="input-prepend">
    <span class="add-on">€</span>
    <input name="increment5" class="input-small" aria-required="true" type="text" value="102" data-rule-digits="true" data-rule-required="true">
    </div>
    </div>
    </div>
    </div>
    </div>
    
    <div class="row-fluid">
    <div class="span1" style="padding-top: 10px;">
    <a class="btn remove_row" href="#" rel="tooltip" data-original-title="Remove this increment step"><i class="icon-minus-sign"></i></a>
    ciao</div><div class="span3">
    <div class="control-group">
    <div class="controls" style="border: currentColor; border-image: none; margin-left: 0px;">
    <div class="input-prepend">
    <span class="add-on">€</span>
    <input name="from6" class="input-small" aria-required="true" type="text" value="5000" data-rule-digits="true" data-rule-required="true">
    </div>
    </div>
    </div>
    </div>
    <div class="span3">
    <div class="control-group">
    <div class="controls" style="border: currentColor; border-image: none; margin-left: 0px;">
    <div class="input-prepend">
    <span class="add-on">€</span>
    <input name="increment6" class="input-small" aria-required="true" type="text" value="500" data-rule-digits="true" data-rule-required="true">
    </div>
    </div>
    </div>
    </div>
    </div>
    Nel secondo div class="row-fluid" è presente un div class="span1" con al suo interno un link, che una volta cliccato deve inserire "prova" (è un esempio, in realtà inserisce il codice di se stesso) nel div class="span1" del primo div class="row-fluid".
    Usando il codice jquery:
    codice:
    $(".remove_row").on("click", function(){
     $(this).closest("div").closest("div").closest(".row-fluid").children(".span1").append("prova");
    });
    mi "appende" il testo nello span1 del secondo div class="row-fluid".
    Anche inserendo più comandi closest() il risultato non cambia.

    Any idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Se devi inserire il testo sempre nel primo div con class row-fluid puoi fare cosi: $(".row-fluid:eq(0) > .span1").append("prova");
    Se devi inserire il testo nel div con classe row-fluid precedente a quello cliccato puoi fare cosi: $(this).closest(".row-fluid ").prev().children(".span1").append("prova");

  3. #3
    Nel mentre avevo risolto con:
    codice:
    $(this).parent().parent().prev(".row-fluid").children(".span1").html("prova");
    Ma il tuo:
    codice:
    $(this).closest(".row-fluid ").prev().children(".span1").html("prova");
    mi pare più elegante.

    Ti ringrazio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.