Javascript 下拉列表值更改存储访问-jquery

Javascript 下拉列表值更改存储访问-jquery,javascript,jquery,Javascript,Jquery,我想将我的select下拉框中更改的值存储在字符串中,然后在change()函数外部访问它 我怎样才能做到这一点 HTML 稍微更改了您的代码: var str = ""; $( "select[name='lob-select']" ).change(function () { str = $("select[name='lob-select'] option:selected").val(); console.log(str); //this works })

我想将我的
select
下拉框中更改的值存储在字符串中,然后在
change()
函数外部访问它

我怎样才能做到这一点

HTML

稍微更改了您的代码:

 var str = ""; 
 $( "select[name='lob-select']" ).change(function () {
     str = $("select[name='lob-select'] option:selected").val();
     console.log(str); //this works
 });
// alert(str); //this doesnt on change (THIS HAPPENS ONCE..
此处的警报仅在页面加载时发生,因为您尚未将其包装到任何事件中

$(':input[type=button]').click(function(){
   //to show that STR is now changed every time just click this button at any time.
    alert(str);
});

如果你把它放在一个事件中,你会看到每当你调用这个事件(在这个例子中是一个按钮点击),你会看到它每次改变都会更新。。我还删除了代码中额外的.change()部分。。这并没有什么意义。

alert(str)
在页面加载时只调用一次,因此它看起来“从未”更改。在该事件下仅执行
change
处理程序内的代码。这是否意味着我无法访问.change()外的str?如果是在另一个函数中?不,只要select上的
change
事件设置了
str
值,这将起作用,只是您的代码示例没有这样做。
 var str = ""; 
 $( "select[name='lob-select']" ).change(function () {
     str = $("select[name='lob-select'] option:selected").val();
     console.log(str); //this works
 });
// alert(str); //this doesnt on change (THIS HAPPENS ONCE..
$(':input[type=button]').click(function(){
   //to show that STR is now changed every time just click this button at any time.
    alert(str);
});