0

jqueryを介して呼び出しを行い、DjangoサーバーからHTMLの一部をロードしています。

$('#search_result').load(url, function(){       
        ...
    });

URLは次のように作成されます。

url = url + '&' + keyword + '=' + value;    

キーワードにスペースがない限り、それは正常に機能しますが、「固定入札」のようなものは単に「固定」に切り取られます。これは問題です。

/deals/?ajax&sales_term=Fixed

スペースを別のものに置き換える必要がありますか?Djangoがスペースとして認識し、取得時に元に戻す文字に置き換えることができれば素晴らしいと思います。それは本当に効率的です。

4

3 に答える 3

4

URLをエンコードする必要があります。これを試してください:encodeURIComponent。問題は、encodeURIComponentが処理する%20でスペースを表す必要があることです。

于 2012-09-05T21:38:36.007 に答える
3

jQuery.paramを使用するだけです

url = {};
url[keyword] = value;

'?' + $.param(url); // ?keyword=value
于 2012-09-05T21:38:55.850 に答える
0

URLはURLをエンコードします。URL内のスペースは、要素にロードするコンテンツをフィルターで除外するために使用されるセレクターの存在を示します。

ページフラグメントの読み込み
$ .get()とは異なり、.load()メソッドを使用すると、挿入するリモートドキュメントの一部を指定できます。これは、urlパラメーターの特別な構文で実現されます。文字列に1つ以上のスペース文字が含まれている場合、最初のスペースに続く文字列の部分は、ロードするコンテンツを決定するjQueryセレクターであると見なされます。

上記の例を変更して、フェッチされたドキュメントの一部のみを使用することができます。

$('#result')。load('ajax / test.html #container');
このメソッドを実行すると、ajax / test.htmlのコンテンツが取得されますが、jQueryは返されたドキュメントを解析して、コンテナのIDを持つ要素を見つけます。この要素は、その内容とともに、結果のIDを持つ要素に挿入され、取得されたドキュメントの残りの部分は破棄されます。

jQueryは、ブラウザの.innerHTMLプロパティを使用して、取得したドキュメントを解析し、現在のドキュメントに挿入します。このプロセス中に、ブラウザは、、、、または要素などの要素をドキュメントからフィルタリングすることがよくあります。その結果、.load()によって取得された要素は、ドキュメントがブラウザによって直接取得された場合とまったく同じではない場合があります。

http://api.jquery.com/load/

于 2012-09-05T21:38:46.770 に答える