-2

テストコードは次のとおりです。

var current_page= 0;
$('#background_music').append('<img id="bm'+current_page+'" src="success.png"   width="68px" height= "68px"/>');
$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});

この例では、画像が期待されるオフセットを与えないため、機能しません。これの何が問題になっていますか:

"bm'+current_page+'"

ただし、これをに変更すると

$("#"+ "bm"+current_page).offset({top: 171, left: 41});

できます。

  1. 違いはなんですか?
  2. コード" bm'+current_page+' "は文字列を生成しません"bm0"か?

更新:1。違いは何ですか?私はこの+変数+を理解することができません。私の過去の質問では、私はそのような同様のものを投稿しました。しかし、結局わかりませんでした...

4

4 に答える 4

2

そのはず

$("#bm" + current_page)

それ以外の

$("#"+ "bm'+current_page+'")

以下は1つの文字列です。

"bm'+current_page+'"

ここでの文字列区切り文字"(二重引用符)、つまりここでネストされた一重引用符(')は文字に他なりません。文字列は最後の。で終わり"ます。

ただし、

'<img id="bm' + current_page + '" src="success.png" width="68px" height="68px"/>'

文字列の区切り文字は'(一重引用符)です。これは、ネストされた二重引用符(")が、2つの文字列の連結で終わる単なる文字であることを意味します。

于 2012-12-26T14:03:46.220 に答える
1

@Stallmanこれは、見積もりがどのように機能するかを理解するのに役立つはずですhttp://www.quirksmode.org/js/strings.html

于 2012-12-26T14:16:11.377 に答える
0

不安定なのはこの行です:

$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});

次のことを試してください。混同された見積もりを修正しています。

$('#bm'+current_page).offset({top: 171, left: 41});
于 2012-12-26T14:04:56.780 に答える
0
$("#"+ "bm'+current_page+'").offset({top: 171, left: 41});

問題はこの行にあると思います。私はそれがすべきだと思います:

$("#bm" + current_page).offset({top: 171, left: 41});
于 2012-12-26T14:07:13.390 に答える