-1

2か月以上もの間、最初から機能しているコードがいくつかあります。セレクターには動的コンテンツがあり、変数に格納されていましたnewClasses。私のコードは以前はでしたが$("'" + newClasses + "'")、約2日前に、ページに個別の機能を追加した後、このコードに影響を与えず、ライブラリなどをインポートしなかったため、次のエラーが発生しました。

Uncaught Error: Syntax error, unrecognized expression: '.fs.btn.heading.abstract' code.jquery.com/jquery.min.js:2

"'" +トラブルシューティングの1日後、とを削除すると+ "'"、機能が再び機能し始めることがわかりまし$(newClasses)た。参考:変数には、文字列の両端にsがnewClasses含まれていませんでした。'

これは多少別の質問ですが、機能を有効にするために別のセクションにどのコードを追加して、一重引用符の連結を削除する必要があるのでしょうか。

ノート -

  • 私はウェブページへのコードヘルプ、よりトラブルシューティングの方法論と思考の答えを探していません。
  • コードの量と追加された別のコードのために、コードを投稿するのは無意味ですが、ここでGitコードを自由に確認できます
  • 以前のコミットに戻そうとしましたが、何らかの理由で同じエラーが発生しました。
  • プログラミングセッションから、コンソールが低レベルの行番号(この場合は2)でJSまたはJQueryを参照している場合、それは通常、些細な;、、、)また}はと関係があると推測しましたが、JSLintはそれを表示しませんでした特定の異常。
  • それ以降、ブラウザは変更されていませんが、再起動したため、システムの更新が完了するのを待っている可能性があります。

jQueryのAPIが変更された可能性はありますか?私が考えていない何か他のもの?考えられる原因についてのご提案をいただければ幸いです。

4

3 に答える 3

3

セレクターは単なる文字列です。変数がすでに文字列型である場合は、両端に引用符を追加する必要はありません。文字列の両端に引用符がないはずなので、追加するとエラーが発生する可能性があります。だから、$(var)うまくいくはずです。

引用符は、次のような文字列リテラルを宣言するために使用されます。

"#test"

ただし、変数にすでにデータがある場合は必要ありません。したがって、selすでに文字列#testを含むという変数がある場合は、次のようにすることができます。

$(sel)

セレクター文字列に引用符を追加できるのは、このセレクターなどの文字列の中央に引用符を埋め込む必要がある場合のみです。

[data-myval='whatever']
于 2012-08-10T22:48:20.040 に答える
2

そもそもあなたが使ったことがあるかどうかはわかりません$("'" + newClasses + "'")'文字列の前後に追加するのはなぜですか?

それはやっているようなもの$("'.fs.btn.heading.abstract'")です。なぜあなたがやったのか私にはわかりません。

jQueryセレクター内で引用符が必要なのは、次のような属性セレクターを使用している場合のみです$('input[id="test.input"]')

于 2012-08-10T22:48:42.673 に答える
0

そのコードを機能させることは不可能です。考えられる唯一の説明は、その関数を追加する前にコードが実行されなかったことです。

基本的に行っていることは次のとおりです。

var id= "#idname"; //#idname
var str = "'" + id + "'"; //'#idname'
$(str); //equivalent to $("'#idname'"); which is wrong

が表示されている場合"hello"、文字列は保持しているだけhelloであり、引用符は文字列の一部ではないことに注意してください

于 2012-08-10T22:59:27.720 に答える