High-Level: Wie ersetze ich den Text eines Elements durch den Wert eines anderen innerhalb eines bestimmten Eltern-Tags?Wie ersetzt man den Text eines Elements mit dem Wert eines anderen innerhalb eines bestimmten Eltern-Tags mit jQuery?
Spezifisch: Mit dem HTML unten möchte ich die HTML von "span.number" durch den Wert von "input.someOtherNumber" ersetzen. Ich kann diese Listenelemente auf einer Seite multiplizieren, sodass sie mit dem übergeordneten Element eingegrenzt werden muss.
<ul>
<li class="list-item">
<span class="number">0</span>
<input class="someOtherNumber" type="text" value="10" />
</li>
<li class="list-item">
<span class="number">0</span>
<input class="someOtherNumber" type="text" value="99" />
</li>
</ul>
Die folgende JS arbeitet den „span.number“ Wert mit dem Wert von „inout.someOtherNumber“ zu ersetzen, aber es macht es nicht auf die Eltern begrenzen. Wie kann ich es auf die Eltern beschränken?
$(".someOtherNumber").keyup(function() {
var value = $(this).val();
$(".number").text(value);
}).keyup();
EDIT:
Wenn die Eingabe in einer Spanne dann gewickelt, wie kann ich es erreichen? Ich suche wirklich nach einer Lösung, die nach einem Elternteil sucht, weil ich in meinem echten Code Multipul-Elemente habe, die ineinander geschachtelt werden können, so dass die ".sibling" oder ".prev/.next" nicht funktionieren. Die aktualisierte HTML würde wie folgt aussehen:
<ul>
<li class="list-item">
<span class="number">0</span>
<span><input class="someOtherNumber" type="text" value="10" /></span>
</li>
<li class="list-item">
<span class="number">0</span>
<span><input class="someOtherNumber" type="text" value="99" /></span>
</li>
</ul>
Sie können es hier sehen: http://jsfiddle.net/8bXbx/
Was wäre, wenn es kein direktes Geschwister wäre, aber immer noch in einem gemeinsamen Elternteil? Wenn Sie beispielsweise "" innerhalb eines Bereichs umbrechen, bricht die Lösung ab. – sevens
Wahr, aber die Lösung funktioniert für Ihren ursprünglichen HTML :) Um zu tun, was Sie fragen, müssen Sie den Baum auf den "gemeinsamen Elternteil" gehen und dann wieder runter, um das gewünschte Element zu finden. Ich habe meine Antwort aktualisiert, um sie zu erklären. –
Sie haben Recht, Ihre Lösung hat meine ursprüngliche Frage beantwortet. Ich habe meine ursprüngliche Frage bearbeitet, um meinen Kommentar zu reflektieren. Danke für die Hilfe und die neue Lösung. – sevens