0

私は複雑なhtml-Formを持っており、そこでの作業の一部にjQを使用しています。そして、今日の午後の大部分を費やして、jQueryが既存のコントロールを見つけられなかった時点までさかのぼることができた問題を理解しようとしました。コマンド$("#FormView1_CopaBOM973row%18%_dkF").width();がnullを返しました。最初に、width()の実装のエラーについて考えてみましたが、$("#FormView1_CopaBOM973row%18%_dkF").attr("id");何も返されず、長さは0でした。

Firefox 3.5.5でこれを行っているので、FirebugのDOM-Explorerを使用して問題がないことを確認しました。そして最後に、究極のテストが機能しまし$(document.getElementById("FormView1_CopaBOM973row%18%_dkF")).attr("id")た。期待される結果が返されました。

したがって、私の唯一の考えは、「疑わしい」文字はエスケープする必要があるということですが、ドキュメントではアンダースコアやパーセントを「疑わしい」とは言及していません。それで、私のせいはどこですか?

そしてpls。これ以上の「コード」を要求しないでください。この問題はこれ以上必要ないと思います...

4

7 に答える 7

2

マシューが言ったように、ID属性に特殊文字を使用することはできません。これはjQueryの問題ではありません。これが完全なリファレンスです。

于 2009-11-11T21:44:38.470 に答える
1

このページの下部にある特殊文字のリストは不完全なようです。パーセント記号をエスケープしてみてください。

$("#FormView1_CopaBOM973row\\%18\\%_dkF")
于 2009-11-11T16:25:20.733 に答える
0

$( "#FormView1_CopaBOM973row%18%_dkF")[0].id;を試してください。

于 2009-11-11T16:20:54.220 に答える
0

'%'はid属性の有効な文字ではないため、おそらくjQueryはそれを好みません。

于 2009-11-11T16:24:16.943 に答える
0

パーセント記号をエスケープすることは機能しているようです。

$("#FormView1_CopaBOM973row\\%18\\%_dkF")
于 2009-11-11T16:24:38.317 に答える
0

これらのパーセント%は、CSSセレクターでは明らかに違法ですが(w3仕様で見つからないか、明らかにされていないjQueryのバグである必要があるため)、HTML属性では違法です。ただし、それらをエスケープすると機能します。

$("#FormView1_CopaBOM973row\\%18\\%_dkF").width();
于 2009-11-11T16:25:48.423 に答える
0

IDに特殊文字が含まれているためだと思います。

試す:

$("[id=FormView1_CopaBOM973row%18%_dkF]").width();
于 2009-11-11T16:31:36.160 に答える