我想声明全局变量,但它一直在说undefined
。
<div class="last">Blah</div>
$(document).ready(function() {
$(document).on('click', '.last', function() {
window.testing = $(this).html();
})
console.log(testing);
})
我也试过了。
$(document).ready(function() {
var testing;
$(document).on('click', '.last', function() {
testing = $(this).html();
})
console.log(testing);
})
答案 0 :(得分:1)
试试这个:
$(function() {
var testing;
$('.last').click(function() {
testing = $(this).html();
alert(testing);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="last">Blah (click here)</div>
&#13;
您的代码:
$(document).ready(function() {
var testing; // testing = undefined
$(document).on('click', '.last', function() {
testing = $(this).html();
})
console.log(testing); // prints undefined, because onlick event has not fired yet and testing is not equal to $(this).html();
}
答案 1 :(得分:1)
您的代码运行正常,但不是您期望的代码。您在加载DOM时读取testing
变量,但在单击按钮后,您只能为其指定值。相反,您需要一种方法来在设置后读取window.testing
变量。以下是使用按钮点击的示例。
$(document).ready(function() {
$(document).on('click', '.last', function() {
window.testing = $(this).html();
})
$('button').click(function() {
console.log(window.testing);
});
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="last">Set</div>
<button>Read</button>
&#13;
另请注意,使用全局变量并不是一件好事。如果需要允许变量在各个地方使用,请使用命名空间。
答案 2 :(得分:0)
试试这个
var testing = "";
$(document).ready(function() {
$(document).on('click', '.last', function() {
testing = $(this).html();
});
console.log(testing);
});
尝试将简单值传递给变量,然后传递.last类值
var testing = "";
$(document).ready(function() {
$(document).click(function() {
testing = 1;
alert(testing);
});
});