私はコメントリストをロードしています。現在、自分のhtmlページにあるリストを新しい読み込み済みのリストに置き換えようとしています。無効なAjaxコンテンツ
以前のバージョンでは、リスト(単純なxml)を読み込み、その要素を反復してコンテンツを生成しました。 うまくいきましたが、要素を1つずつ繰り返して作成しなければならず、xmlはデバッグ以外は役に立たないものでした。
私はxmlページをhtml(スタンドアロン)またはxml(ajaxの必要性、つまりコアのもの)として表示できるように変更しようとしています。
// ajax call to populate the comments
$.ajax({
type: 'GET',
url: 'flow/' + target,
dataType: 'xml',
success: function(xml){
var list = $(xml).find('#flow');
// var $list = $layer.find('#flow');
// $list.children().remove();
// we process it for events :
// --to implement--
// we simply replace the list
$layer.find('#flow').replaceWith(list);
// update the scrollpane
updateScrollPane();
},
error: function(xhrq, status, code){
formError('Could not load the comments.<br />Error with xhr : status=' + status + ', code=' + code);
// and we log it
log('Error with xhr : status=' + status + ', code=' + code);
updateScrollPane();
}
});
しかし、問題は、それが正しく挿入されますが、それがブラウザでXMLとして考えられていますので、スタイリングが正しく動作しないということである。
は、私はそのようにそれを交換してください。すなわち、ここで
がロードされる可能リストである:
<?xml version="1.0"?>
<ul id="flow" path="2012/grammont" target="IMG_9610.JPG" valid="false">
<!-- no comment yet, be the first ! -->
<li class="no-comment" />
<!-- Log :
New FlowDB(2012/grammont/flow.db, IMG_9610.JPG)
-->
</ul> <!-- end of the real content -->
私は私の問題は、それが誤ってXMLとしてのjQueryによって解釈されていることだと思います(私は$(XML).find(「#フロー」を使用しました)ので、DOM要素だけを取得し、xmlヘッダーを削除する必要があります。 Iが挿入取得一つは単純型要素(すなわち、ブラウザによって解釈されない)であるが
現在、正しいのli要素は、HTMLLIElementオブジェクトです。
ブラウザでHTMLを取得し、xmlの要素が混在していないことを確認するにはどうすればよいですか?
編集:
私はXMLヘッダなしで簡単なHTMLを生成し、ノーdataTypeと(またはデータ型: 'HTML')でそれをロードしようとするので、私の、結果はさらに悪くなります現在のリストが削除され、何もそれを置き換えるために置かれていない...
「dataType: 'text/html''を試してください。また、なぜターゲット、パス、および有効な属性を持っていますか? – Ktash
要素の(子の)内容を置き換えるには、次のように変更します:$ layer.find( '#flow')。replaceWith(list); 〜$ layer.html(リスト); –
はい、ここで問題となるのは、$ layerには#flowという要素が多くあり、#flowだけが置き換えられることです。 –