有没有办法将变量从jquery传递给javascript?

时间:2015-02-28 21:17:30

标签: javascript jquery variables

<button type="button" class="metric">Metric</button>
<button type="button" class="imperial">Imperial</button>
<script>
jQuery(function($){
    $( '.metric' ).click(function(){
        count = 0;
    });
    $( '.imperial' ).click(function(){
        count = 1;  
    });
});
console.log(count);     
</script>

我目前在我的控制台中未定义。有没有办法将变量从jquery转换为vanilla javascript?

2 个答案:

答案 0 :(得分:3)

第一次解析并执行count元素时,您正在记录script的值。这是在单击按钮之前(并且,因为你有一个ready处理程序,甚至在事件处理程序被分配之前),所以它也是在你给{{1}的值之前}。

由于您尚未在该阶段声明count,因此不应将其记录为具有值count,而是报告错误:undefined

如果要在单击按钮后查看新值,则必须在完成后再次将其记录到控制台。 (例如,在每个点击事件处理函数中调用Uncaught ReferenceError: count is not defined)。

答案 1 :(得分:-1)

jQuery只是一个javascript库,所以它是javascript。如果你想全局获取(并设置)count的值,我建议你将它定义为全局,这样就可以更容易地读取/控制代码。

var count; //global

jQuery(function($){
    $( '.metric' ).click(function(){
        count = 0;
    });
    $( '.imperial' ).click(function(){
        count = 1;  
    });
});

function test() {
   console.log(count);     
}

如果您第一次运行test()变量count将是未定义的,因为在您点击它(然后设置为0或1)之前它未设置