jQuery $.post() Problem bei Rückgabe von tr und td elementen

kosimas

Grünschnabel
Hallo

Ich habe folgendes problem: ich versuche tr's mit td's per $.post nachzuladen.
Gebe ich mir den Result in der .done(function(){}) in der Console aus sieht alles richtig aus aber sobald ich versuche
den Result im HTML auszugeben entfernt er mit alle tr's und td's.

$(current).parent("td").parent("tr").after(result);

Ich verstehe absolut nicht wo das problem ist die tabellen elemente werden auf jedenfall richtig übertragen da bin ich mir zu 120% sicher...

need help! :(
Javascript:
function getUrls(current, kat_nr, portal_id){
	var ajax_url = "/ajax/get_ranking_url.cfm?debugoutput=no";
	
	$.post(ajax_url, {
		kat_nr		:		kat_nr,
		portal_id	:		portal_id
	}).done(function(content){
		//console.log($(content).find("##ajax_tr_load").prevObject);
		console.log($(content));
		$(current).parent("td").parent("tr").after(content);
	}).fail(function(){
		alert("Beim Nachladen ist ein Fehler aufgetretten.");
	});
}
 
Zuletzt bearbeitet:
wenn du dein Javascript Code in [ javascript ] diesen Block schreibst wird er formatiert und für uns viel besser lesbar :) [ /javascrpt ]

Edit:
Schau mal hier:
http://jsfiddle.net/C5Y7H/

scheint zu funktionieren.

Poste bitte mal den HTML Teil der betroffen ist (Die Tabelle), den Rückgabewert (content) und was du als Selector (Funktionsparameter current) übergibst.
Oder besser, füge ihn in den oberen Link bei jsfiddle ein.
 
Zuletzt bearbeitet:
Javascript:
$(".kategorie_klapper a").click(function(){
						var kat_nr = $(this).next("span").attr("kat_nr");
						var klapper = $(this).html();
						var portal_id = $("##domain").val();
						
						if(klapper == "+") {
							getUrls(this, kat_nr, portal_id);
							$("tr.url_data[kat_nr=" + kat_nr + "]").show();
							$(this).html("-");
						}
						else if(klapper == "-") {
							$("tr.url_data[kat_nr=" + kat_nr + "]").hide();
							$(this).html("+");
						}
						return false;
					});
Da wird die funktion aufgerufen.
der html code geht über mehrere hundert bis tausend zeilen der aufbau von td und tr ist aber immer derselbe
HTML:
<tr>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
<td>Daten</td>
</tr>
Ich mache die mal ein screen vom Consolen log
 
Das ist also der Selector: ".kategorie_klapper a"
in den td-Tags hat es ein a-Tag?

Hmm ich sehe immer noch nicht wo das scheitern könnte.

Eventuell kannst du das falsche verhalten auf jsfiddle nachbauen?
 
Es macht für mich auch gerade keinen Sinn, allerdings habe ich jetzt auch nicht viel Zeit da wirklich rein zu schauen.

Was du aber machen solltest wären die Slashs durch &frasl; ersetzen. (Das wird das Problem aber nicht beheben).

Edit:
Da ich weg muss einfach noch paar Tipps:
Du musst versuchen das Problem runter zu brechen. Anstatt via Ajax lade den Context in eine Variable und lade sie dann in die Tabelle, usw.
 
Soooooo hab die lösung :)

Javascript:
function getUrls(current, kat_nr, portal_id){
	var ajax_url = "/ajax/get_ranking_url.cfm?debugoutput=no";
	
	$.post(ajax_url, {
		kat_nr		:		kat_nr,
		portal_id	:		portal_id
	}).done(function(content){
		var result = $(content).find("##ajax_tr_load").prevObject.get(3).innerHTML.replace("<tbody>", "").replace("</tbody>", "");
		$(current).parent("td").parent("tr").after(result);
		$("tr.url_data[kat_nr=" + kat_nr + "]").show();
	}).fail(function(){
		alert("Beim Nachladen ist ein Fehler aufgetretten.");
	});
}

Das Problem war das ich in der ajax_url datei mir nur die tr's und td's generiert haben.
Das ist erstmal nichts unbedingt falsches aber wenn jquery kein table tag findet werden alle anderen table elemente auch entfernt.
Also table tag hinzugefügt und siehe da es läuft :)
 

Neue Beiträge

Zurück