これは情報が多すぎるかもしれませんが、どうぞ... ユーザーが URL を入力すると、その URL が ajax 経由でバックエンドに送信され、その URL が存在することが確認されます。存在する場合は、url と contentType (text/html、image/jpeg...ect) を返します。以下のコードは、ajax 成功のコールバックです。
var template =
"<span class='urlFile'>"+data.contentType+'</span>'+
"<span class='urlPath' title="+data.url+'>'+data.url+'</span>';
$(template).prependTo(fieldWrapper);
問題は、結果の html レンダリングが部分的に順不同であることです。以下は、Firebug (Chrome) の出力補完です。data.url ( http://api.jquery.com/appendto/ ) が span.urlPath にラップされていないことに注意してください。
<span class="urlFile">html</span>
<span class="urlPath" title="http://api.jquery.com/appendto"></span>
http://api.jquery.com/appendto/
さらに、追加すると、次のalert(template)
ようになります。
<span class='urlFile'>html</span>
<span class='urlPath' title=http://api.jquery.com/prependto/>http://api.jquery.com/prependto/</span>
...どちらが正しい。この問題は、末尾の/
;をレンダリングするブラウザに関係していると思います。ただし、スラッシュを削除する以外に修正する方法がわかりません。
参考: 末尾のスラッシュを削除すると、問題が解決するようです。
var url = data.url.replace(/\/$/,'');
……でも本当に必要なの?これに基づいて、それは悪い考えのように聞こえます: