0

何時間ものフラストレーションの末、ようやくエラーの原因となっているコード行を見つけましたが、今度はその理由を知る必要があります。

jQuery は次のエラーをスローしていました。Uncaught Error: Syntax error, unrecognized expression: .

調査したところ、これは参照されているセレクターが jQuery で見つからない場合に発生する Sizzle エラーであることがわかりました。SOに関する他の質問で示唆されたように、これは実際には私のjQueryコードのエラーではなく、他の場所にありました。

コンテンツをロードするターゲット要素として使用する変数を定義し、PHP を使用して変数を動的に定義していました。

var $container = $(".<? echo $target ?>");

.は認識されない式としてフラグが立てられているため、これは機能しませんでした。ただし、PHP 変数を静的文字列に置き換えると問題なく動作します。

var $container = $(".target");

エラーをスローしている行を特定できなかったため、これを見つけるのは非常に困難でした。ブラウザからのソースでは、上記の最初の行は 2 行目のように見えます。

最初の例が機能しないのはなぜですか? 実行順序と関係がありますか?また、動的変数をセレクターとして使用するにはどうすればよいですか?

4

3 に答える 3

2

you have to use

<?php echo $test; ?>

or the shortcut:

<?= $test ?>
于 2013-02-27T17:16:33.477 に答える
0

読み込んでいたページに変数 $target が渡されていなかったことがわかりました。最初のページでは、 $target が値で初期化されたため、ソース出力は質問で指定されたように見えました。ただし、新しいデータでページをリロードするために行っていた ajax 呼び出しは、変数を渡していませんでした。

于 2013-02-27T18:14:04.017 に答える
0

これを行う前に試すことができますtrim($target)。それが機能する場合、おそらくその変数に不要なスペースがいくつかあります。

json_encodeまた、php から javascript に変数を渡すために使用することも検討してください。そのようです:

var selector = <?php echo json_encode($target); ?>;
var $container = $(selector);

これにより、単純な文字列だけでなく、より複雑な変数構造も渡すことができます (エンコーディングの安全性も確保されます)。

于 2013-02-27T17:19:44.533 に答える