2012-01-11 13 views
0

クラス 'result'と一意のIDを持つ複数のdivで複数のHTML部分を読み込む必要があります。jQueryの.load()パラメータのjavascript変数

$('.result').load('/check.php', 
     {'id': this.id, 'url':'<?=$url?>'} 
    ); 

A PHPスクリプト(check.phpは)それを取得パラメータ(ID & URL)に応じて異なるHTMLを生成します。私はthis.idをパラメータとして渡したいが、ページは決してロードされない。

this.idは文字列の権利ですか?私がthis.idを 'hello'と言うことで置き換えると、それはうまくいくでしょう。

+0

「this」は何になると思いますか?このコードがJSオブジェクトのメソッド内になければ、それは 'window'になります。 – Alnitak

+0

それはあなたが持っているコードから見ることができない文脈によって決まります – Esailija

答えて

0

this.id.resultの各要素のIDを.loadに渡すと予想される場合、それは機能しません。あなたのコードは新しいコンテキストを作成しないので、this.load呼び出しの外にあったものになります。

このべき作品:

$('.result').each(function() { 
    $(this).load('/check.php', 
     {'id': this.id, 'url':'<?=$url?>'} 
    ); 
}); 

.each呼び出しが順番に、選択された要素のそれぞれにthisを設定しないため。

+0

私は、 '?id = '+ this.id'ではなくデータオブジェクトを使う利点は、正しい区切り文字が使われることを想像しています'&')。これが事件か、それ以上のことはありますか? – Jasper

+0

データオブジェクトはPOSTを行い、?id =はGETメソッドを与えます。これは問題ではなく、むしろthis.idが明確に定義されていないという事実でした。ありがとう@Alnitak – emiel187

+0

@ジャスパーは、データオブジェクトを使用することの本当の利点は、コンテンツが自動的にURLエンコードされることを保証することです。 – Alnitak

0

this.idは必ずしも文字列である必要はありません。 javascriptキーワードthisはかなりquirkyなので、注意してください。

関連する問題