質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

jQuery

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

Q&A

解決済

3回答

4308閲覧

jQueryの変数をインラインの<script>内で使いたい

lenlen

総合スコア44

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/10/11 07:54

head内でjsフォルダの中にあるscript.jsを読み込んでいます。
script.jsの内容は下記のような感じです。↓↓

JS

1jQuery(function($){ 2 3$('.btn').on('click',function(){ 4 5 var amount = $('#amount').val(); 6 7}); 8 9});

そしてHTMLのbody内に下記のようなスクリプトを書いています。

JS

1<script> 2jQuery(function($){ 3 4 if( amount > 10 ){ 5 document.write("<div class="hoge">表示させたい内容</div>"); 6 } 7 8}); 9</script>

JSファイルではクリックした値を保存して、HTMLの中にインラインで書いたjavascriptでその変数を表示させたいのですが表示されません。

グローバルスコープにしたくてvarを外したりもしてみましたが、取得出来ていないようで困っています。。

どのようにすれば、他の関数内の変数を同ページのインラインJSで扱うことができるのでしょうか?

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

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

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

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

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

guest

回答3

0

ベストアンサー

JSファイルではクリックした値を保存して、HTMLの中にインラインで書いたjavascriptでその変数を表示させたいのですが表示されません。

仮にグローバル化できたとしても、クリックしたタイミングでしか変数が入りませんので、jQuery(function(){})内で実行する時点では、まだ値を取れていません。この方法で実現するのは無理です。

あと、document.writeは、基本的に読み込みと同時に書き出す分にしか使えません。$().append(HTML)などを使いましょう。

投稿2018/10/11 07:59

maisumakun

総合スコア145183

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

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

lenlen

2018/10/11 11:02

ありがとうございます!とすれば、インラインJSの中でもう一度値を取得して変数に入れなければだめでしょうか?
guest

0

変数で共有する必要性を感じませんでした。

HTML

1<input type="number" id="amount" value="100"> 2<input type="button" value="btn" class=".btn"> 3<script> 4'use strict'; 5jQuery(function ($) { 6 $('.btn').on('click',function (event) { 7 console.log(event.type); 8 }) 9}); 10</script> 11<script> 12'use strict'; 13if ( $('#amount').val() > 10 ) { 14 console.log($('script:last')[0]) 15 $('script:last').before('<div class="hoge">表示させたい内容</div>'); 16} 17</script>

Re: lenlen さん

投稿2018/10/11 11:35

think49

総合スコア18162

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

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

0

どうしたいのかもよくわからなかったのですが、大胆にエスパーすると

HTML

1<div> 2 <input type="number" id="amount" value="10" /> 3 <button type="button" class="btn">show</button> 4 <output id="output"></output> 5</div> 6<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script> 7<script src="script.js"></script> 8<script> 9jQuery(function($){ 10 $('.btn').on('click', function(event) { 11 $('#output').val(amount.toString()); 12 }); 13}); 14</script>

script.js

JavaScript

1var amount = 0; 2jQuery(function($){ 3 amount = parseInt($('#amount').val(), 10); 4 $('#amount').on('change', function(event) { 5 amount = parseInt($('#amount').val(), 10); 6 }); 7}); 8

投稿2018/10/11 08:34

x_x

総合スコア13749

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問