Könnte mir jemand sagen, warum dieser Code nicht die Datenantwort aktualisiert? Es ist ein einfaches Beispiel der jede Funktion. HierÄndern Sie eine AJAX HTML-Antwort mit jeder Funktion
ist die Ajax-HTML-Datei angefordert:
<html>
<div class="new">
<div class="span4">
<h2>Heading1</h2>
<p>Text1</p>
<p><a href="#">Link1</a></p>
</div>
<div class="span4">
<h2>Heading2</h2>
<p>Text2</p>
<p><a href="#">Link2</a></p>
</div>
</div>
</html>
und hier ist die Hauptdatei Körper:
<!DOCTYPE html>
<body>
<textarea id="gethtml" rows="40" cols="125"></textarea>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
"use strict";
$(function() {
$.get('file.html', function(data) {
ajaxfunction(data);
});
function ajaxfunction(data) {
$(data).find(".span4").each(function() {
$(this).find("p").eq(0).text("Hello");
$(this).find("p").eq(0).after("<p>newline</p>");
console.log($(this));
});
$("#gethtml").val(data);
}
});
</script>
</body>
</html>
Sie können sehen, dass die Konsole die richtigen Daten für jeden span4 zeigt, aber warum Wird die Zeichenfolge "data" nicht aktualisiert, um die Änderungen zu berücksichtigen?
EDIT
function ajaxfunction(data) {
var tree = $("<div>" + data + "</div>");
$(tree).find(".span4").each(function() {
$(this).find("p").eq(0).text("Hello");
$(this).find("p").eq(0).after("<p>newline</p>");
console.log($(this));
});
$("#gethtml").val(tree.html());
}
Diese Orte in das Textfeld, das heißt <p>Hello</p><p>newline</p>
. Also, um auch eine neue Zeile einzufügen, muss ich es als String ändern, oder?
Danke!
'tree' ist bereits ein jQuery-Objekt. Rufen Sie '$()' nicht darauf auf. – SLaks