<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?
答案 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)之前它未设置