我想在其外部使用更改功能的变量值。我在更改函数之外声明了变量,但是当我在其他函数中使用它时,它仍然输出未定义的值。
$(document).ready(function() {
var test = "";
$("input:checkbox").change(function() {
var ischecked = $(this).is(':checked');
if (ischecked) {
test = $(this).attr('class');
}
$('.first').text(test);
});
$('.second').text(test);
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="all" value="Car">All
<input type="checkbox" class="got" value="Car">Game of Thrones
<input type="checkbox" class="bb" value="Car">Breaking Bad
<input type="checkbox" class="arrow" value="Car">Arrow
<div class="first"></div>
<div class="second"></div>
&#13;
在#second
div中,变量值未定义。
答案 0 :(得分:1)
class
值才会分配给test
变量。但您要在second
&amp;上设置document ready
的文字。那时它是空字符串。
有很多方法可以解决此问题。您可以将$('.second').text(test);
与$('.first').text(test);
一起放在更改函数中,或者只创建一个函数,在输入和更改时调用它。传递class
值作为参数。
以下是带有function
$(document).ready(function() {
var test = "";
$("input:checkbox").change(function() {
var ischecked = $(this).is(':checked');
if (ischecked) {
test = $(this).attr('class');
}
$('.first').text(test);
_setSecondDiv(test)
});
function _setSecondDiv(selClass){
$('.second').text(test);
}
})
使用多个jQuery选择器
$(document).ready(function() {
var test = "";
$("input:checkbox").change(function() {
var ischecked = $(this).is(':checked');
if (ischecked) {
test = $(this).attr('class');
}
$('.first, .second').text(test); // Changed here
});
})