下記のように、コードを記載した場合、
if文の中の
i1、i2_1、i2_2はそれぞれnot definedになってしまいます。
その前のfunction内(ローカルスコープ内)でvar宣言をしてないので、grobal scopeとして使用できるのではないでしょうか?
原因とfunction外で当該変数を使用する方法について、アドバイスをいただければ幸いです。
なお、function内にif文のブロックを書けばと言うご指摘もあるとともいますが、
ここではsetTimeoutをして要素が動的に変化した後の.text()を取得しなければならないことから
このような構造になっております。
setTimeoutを指定しない場合には変化前の要素のtextを取得してしまうため、うまくいきません。。。
このような方法でsetTimeoutを使用すること自体、あまり望ましい使い方ではないと言うご指摘を頂く
きはいたします。。。
よろしくお願い申し上げます。
JavaScript
1$(function(){ 2 $('#select_inside_1>div>div>div,#select_inside_2_1>div>div>div,#select_inside_2_2>div>div>div').on('click', function() { 3 setTimeout(function(){ 4 i1=$('#select_inside_1>div>div:eq(0)').text(); 5 i2_1=$('#select_inside_2_1>div>div:eq(0)').text(); 6 i2_2=$('#select_inside_2_2>div>div:eq(0)').text(); 7 console.log(i1); 8},1) 9if ((!i1=="【賃貸/購入 選択")&&(!i2_1=="【資産 選択】"||!i2_2=="【資産 選択】")) { 10alert('execution'); 11} 12 13 }); 14})
回答2件
あなたの回答
tips
プレビュー