2017-08-26 19 views
0

次のコンテンツをjquery変数に渡そうとしていますが、これをクリックすると期待される式が得られます}。それは引用権と関係がありますか?この例では、二重引用符と一重引用符をどのように使用するのですか?期待された式は '}'ですか?

var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom('general')'>General</div>") 
+2

問題はあなたの 'jumpToFirstLevelRoom'のどこかにあり、ここではありません。その関数にもコードを追加して、わかるようにします。第2に、あなたのブラウザでデバッガを試して、なぜ '}'がそこに渡されているのか見てみましょう。 –

答えて

4

はい引用が間違っています。一重引用符内にエスケープされていない一重引用符があります。

  • 異なる引用符:

    var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom(`general`)'>General</div>") 
    
  • エスケープ引用符:

    var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom(\'general\')'>General</div>") 
    
+0

ありがとう!ダブル、シングル、バックチックに感謝しています。 – romoha11

0

エスケープシーケンスを使用して、変数から二重引用符を削除できます。

var content = $("<div class=\"channel\" id=\"general\" onclick=\"jumpToFirstLevelRoom('general')\">General</div>") 
0
だけ escape charactersを使用

var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom(\'general\')'>General</div>"); 

をあなたの現在のコード

var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom('general')'>General</div>") 

を変更

。あなたは、この問題を解決する

var content = $(`<div class='channel' id='general' onclick='jumpToFirstLevelRoom("general")'>General</div>`); 

希望を行うことができますES6で

0

あなたが探しているものがある

あなたはこれらの引用技術のいずれかを使用する必要がありますthis:

var content = $("<div class='channel' id='general' enter code hereonclick='jumpToFirstLevelRoom(\'general\')'>General</div>"); 

二重引用符を削除するには、エスケープ文字を使用する必要があります。

0

あなたのコードで問題が発生しました。問題は、関数を呼び出して引数を渡すステートメントにあります。

var content = $("<div class='channel' id='general' onclick='jumpToFirstLevelRoom('general')'>General</div>") 

あなたはjumpToFirstLevelRoom( '一般')機能で文字列の一般的なを渡しています。 したがって、文字列一般の一重引用符を開始するときは、onclick = 'の終了引用符として動作しています。

引数に関数内の文字列を渡さないようにしてください。その後、コードが実行されます。 私はそれがあなたを助けてくれることを願っています。 :)