2016-05-18 13 views
0

Ich habe die folgende jquery, wenn eine Option ausgewählt wird einige HTML hinzugefügt wird oder eine andere basiert auf einer if else-Anweisung, die richtig funktioniert, ist das Problem, dass, sobald eine Option ausgewählt ist, Wenn ich zurück gehe und diese Option ändere, ändert sich der hinzugefügte HTML-Code nicht, aber wenn ich einen Alarm hinzufüge, ändert sich der Alarm basierend auf dem Wertnamen des Optionsfelds, so dass ich nicht genau verstehe, warum es den HTML-Code nicht ändert die jQuery-Funktion change().Jquery ändern html nach Auswahl Box ändert

hier ist der Code

$("select").change(function() { 

option = $("#opcion").val(); 

if(option == "celulares") { 
$(".insert").replaceWith(" <div class='row' id='option2'> <div  class='col-xs-6'>Por favor ingrese el costo de cada celular en dolares: </div><div class='col-xs-6'><form class='form-inline'><div class='form-group'><label class='sr-only' for='exampleInputAmount'>Amount (in dollars)</label><div class='input-group'><div class='input-group-addon'>$</div><input type='text' class='form-control' id='costoproducto' placeholder='Monto'><div class='input-group-addon'>.00</div></div></div><div id='validacioncosto'></div></form></div></div><hr> " + 
    "<div class='row' id='option6'><div class='col-xs-6' id='resultado'></div><div class='col-xs-6'><button type='button' id='calculo' class='btn btn-warning'>Calcular</button></div></div><div class='row' id='result'></div> "); 

} else if(option == "electronica" || option == "juguetes" || option == "repuestos" || option == "otro") { 
$(".insert").replaceWith(option); 
alert(option); 
} 
}); 

und die HTML-

<option></option>     
<option value="celulares">Celulares</option> 
<option value="electronica">Electronica</option> 
<option value="juguetes">Juguetes</option> 
<option value="repuestos">Repuestos</option> 
<option value="otro">Otro</option> 

</select> 
      </div> 
     </div> 
    </div> 

    <hr> 
    <div class="insert"> 
     <p>hola</p> 
    </div> 

irgendwelche Hinweise?

Antwort

0

replaceWith Funktion ersetzt das Element durch das neue HTML. Danach können Sie es nicht mehr auswählen, da der von Ihnen verwendete HTML-Code nicht die Klasse insert hat. Ich nehme an, Sie an die Funktion html wie folgt gesucht:

$(".insert").html(YOUR_HTML);

+0

danke, dass das Problem gelöst und Ihre große Erklärung machte mir das verstehen, warum ich immer aber, dass replaceWith() nur das Innere des div geändert und nicht den Namen selbst zu entfernen, damit dies mit replacewith funktioniert, musste ich auch das div in den Code einfügen, der überflüssig ist. – frenciaj

1

Sie wären wahrscheinlich besser dran mit $(".insert").html() anstelle von $(".insert").replace(), so dass Sie gerade die Eingeweide der div.

Verwandte Themen