2014-10-29 71 views
0

爲什麼不提示var valueFirst內容?jquery更改()函數

我的jQuery代碼:

<script type="text/javascript"> 
    $(".target").change(function() { 
    var valueFirst = $(".target").val(); 
    }); 
    alert (valueFirst) 
</script> 

我的HTML:

<form> 
    <select class="target"> 
    <option value="option1" selected="selected">Option 1</option> 
    <option value="option2">Option 2</option> 
    </select> 
</form> 
+1

我希望你忘記了文件準備好了。 – 2014-10-29 08:31:15

+1

取決於JS是在文檔的開始還是結束。 – rottenoats 2014-10-29 08:31:51

回答

0

如果你想改變一個變量,並訪問它的主要選擇外,你必須在級別上定義它,你想從訪問:

var valueFirst = ''; 
 

 
$(".target").change(function() { 
 
    valueFirst = $(".target").val(); 
 
}); 
 

 
$('button').click(function() { 
 
    alert (valueFirst) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select class="target"> 
 
    <option selected value="">-- Choose One --</option> 
 
    <option>Foo</option> 
 
    <option>Bar</option> 
 
</select> 
 

 
<button>Get valueFirst Value</button>

如果你正在尋找只是從更改功能內訪問變量,那麼以下將適用於你

$(".target").change(function() { 
 
    var valueFirst = $(".target").val(); 
 
    alert (valueFirst) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select class="target"> 
 
    <option selected value="">-- Choose One --</option> 
 
    <option>Foo</option> 
 
    <option>Bar</option> 
 
</select>

2

警報是不是在回調。它在哪裏,變量既沒有定義也沒有被填充。更改您的代碼

$(".target").change(function() { 
    var valueFirst = $(".target").val(); 
    alert (valueFirst) 
}); 
+0

可能需要Document.ready。 – rottenoats 2014-10-29 08:35:25

0

的ValueFirst超出範圍的變更功能

$(".target").change(function() { 
      var valueFirst = $(".target").val(); 
      alert (valueFirst); 
    }); 
0

添加你改變函數內部警告:

<script type="text/javascript"> 
    $(".target").change(function(){ 
var valueFirst = $(".target").val(); 
alert (valueFirst) 
}); </script> 
1

簡單,因爲你初始化你的變量中一個函數,因此ALERT無法達到它。

爲了能夠使用它啓動它outiside這樣的:

<script type="text/javascript"> 
var valueFirst; 
$(".target").change(function() { 
    valueFirst = $(".target").val(); 
    }); 
    alert (valueFirst) 
</script> 

但是,當功能被激發被提醒,放警報的功能

<script type="text/javascript"> 

$(".target").change(function() { 
    var valueFirst = $(".target").val(); 
    alert (valueFirst) 
}); 

</script> 

關於註釋中:

Fiddle here

您忘記了包括de Jquery,並且您的代碼必須位於document.ready處理程序中。

$(document).ready(function() { 
$('.target').change(function() { 
    valueFirst = $(".target").val(); 
    alert (valueFirst); 
    }); 
}); 
+0

感謝所有:) ..做了你所說的,但沒有alret看到這個演示http://jsfiddle.net/pp2135oc/ – 2014-10-29 08:45:27

+0

@EyalLivne你忘了包括jquery在你的小提琴和可能在你的代碼。請參閱幾秒鐘內的修改 – Shaeldon 2014-10-30 13:24:54