🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1319閲覧

javaScript の変数が ""1"" のように2つの二重引用符で囲まれている場合の解釈と対処

AkihiroIshii

総合スコア67

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/12/21 01:41

状況

jQueryでDOM要素の値を取得する処理を書いているのですが、Chromeのデベロッパーツールで取得した属性値を見ると""1""のように2つの二重引用符で囲まれているものがありました。具体的には次のキャプチャでの変数foodのような状態です。
イメージ説明
$.type(food)$.type(type)をコンソールに出力すると、どちらもstring型でした。
しかし、このようにfoodの値を取得した後、セレクトボックスの値を変更するために$('#セレクトボックスのid').val(food)という処理を書いても正しく反映されませんでした。$('#セレクトボックスのid').val(type)の場合は正しく反映されました。

質問

""1""のように2つの二重引用符で囲まれている変数を利用する場合、何か処理が必要になるのでしょうか?
または、通常のstring型と異なる解釈があればご教示いただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

""1""のように2つの二重引用符で囲まれている変数を利用する場合、何か処理が必要になるのでしょうか?

わかりやすく書けば、これは"1"という内容の文字列(二重引用符も中身の一部)です。

#script_idのエレメントにはどのように書かれていますでしょうか。

投稿2019/12/21 01:43

maisumakun

総合スコア145970

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AkihiroIshii

2019/12/21 02:10 編集

#script_idのエレメントは、次のようになっていました。 <script id="script_id" food=""1"" type="text/javascript" src="〇〇"></script> FuelPHPで開発しており、訳あってfoodの値はphpから渡しております。以前に配列を渡す処理を書いた時の名残で、json形式にエンコードして渡す書き方をしていたことに気付きました。具体的に修正したコードは自己回答に記載しました。 ご指摘いただいて原因を見つけることができました。ありがとうございます!
guest

0

そもそも参照先の要素のfood属性が次のように2つの二重引用符で囲まれていました。
<script id="script_id" food=""1"" type="text/javascript" src="〇〇"></script>

FuelPHPで開発しており、訳あってfoodの値はPHPから渡していました。以前に配列を渡す処理を書いた時の名残で、次のようにjson形式にエンコードして渡す書き方をしていたことに気付きました。
<?php echo Asset::js('main.js', array('id'=>'script_id','food'=>json_encode($food))); ?>

そこで、次のようにjson形式にエンコードせずに値で渡す記述に直したところ、参照する要素のfood属性が"1"になり、javaScriptでも"1"のように受け取ることができました。
<?php echo Asset::js('main.js', array('id'=>'script_id','food'=>$food)); ?>

投稿2019/12/21 02:05

AkihiroIshii

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問