倍数复选框相同.click功能
对于我缺乏知识抱歉歉,我确信这是那些简单的修复解决方案之一。
我的网页中有一些复选框。 当您选中复选框时,值1会发送给变量。
看例子:
$('#abilitytobenonjudgemental').click(function(){
var check = document.getElementById("abilitytobenonjudgemental").checked
if (check == true) {
job2 += 1;
job3 += 1;
job7 += 1;
workSkillsCheckboxCount += 1;
console.log(workSkillsCheckboxCount);
}
else if (check == false) {
job2 -= 1;
job3 -= 1;
job7 -= 1;
workSkillsCheckboxCount -= 1;
console.log(workSkillsCheckboxCount);
}
});
一些复选框的功能翻倍,我想写一个大功能,而不是一些功能。 下面的这个功能似乎不起作用。
$('#teamwork, #goodcommunicator, #self-motivated, #computerskills, #planning, #selfmanagement, #flexibleteamplayer, #timedeadlines').click(function() {
var check = document.getElementById("teamwork, goodcommunicator, planning, self-motivated, computerskills, selfmanagement, flexibleteamplayer, timedealines").checked
if (check == true) {
job1 += 1;
job2 += 1;
job3 += 1;
job4 += 1;
job5 += 1;
job6 += 1;
job7 += 1;
job8 += 1;
workSkillsCheckboxCount += 1;
console.log(workSkillsCheckboxCount);
}
else if (check == false) {
job1 -= 1;
job2 -= 1;
job3 -= 1;
job4 -= 1;
job5 -= 1;
job6 -= 1;
job7 -= 1;
job8 -= 1;
workSkillsCheckboxCount -= 1;
console.log(workSkillsCheckboxCount);
}
});
我试着给相应的复选框一个类,然后写这个函数。 但是,这似乎并没有将值发送到workSkillsCheckboxCount变量。
$('.group1').click(function(){
var check = document.getElementsByClassName("group1").checked
if (check == true) {
job1 += 1;
job2 += 1;
job3 += 1;
job4 += 1;
job5 += 1;
job6 += 1;
job7 += 1;
job8 += 1;
workSkillsCheckboxCount += 1;
console.log(workSkillsCheckboxCount);
}
else if (check == false) {
job1 -= 1;
job2 -= 1;
job3 -= 1;
job4 -= 1;
job5 -= 1;
job6 -= 1;
job7 -= 1;
job8 -= 1;
workSkillsCheckboxCount -= 1;
console.log(workSkillsCheckboxCount);
}
});
.getElementById()
函数将一个ID作为参数,并返回带有该ID的(第一个)元素(如果没有找到,则返回null
)。 你不能用ID列表来调用它。
给元素一个普通的类是识别它们的最好方法,但.checked
属性属于单独的复选框,所以你不能在.getElementsByClassName("group1")
(它返回一个列表)的结果中使用它。
您在评论中说,您正在尝试检查是否至少有一个项目被选中。 jQuery的.is()
方法将:
对照选择器,元素或jQuery对象检查当前匹配的元素集合,如果这些元素中至少有一个匹配给定参数,则返回true。
因此,如果将它与:checked
选择器一起使用,您可以测试是否有任何具有group1
类的元素被选中:
$('.group1').click(function(){
if ($('.group1').is(':checked')) {
job1 += 1;
// etc.
} else { // none are checked:
job1 -= 1;
// etc.
}
});
请注意,如果if
和else
分支都更新完全相同的一组变量,唯一的区别是添加还是减1
那么您可以这样做:
$('.group1').click(function(){
var val = $('.group1').is(':checked') ? 1 : -1;
job1 += val;
job2 += val;
job3 += val;
job4 += val;
job5 += val;
job6 += val;
job7 += val;
job8 += val;
workSkillsCheckboxCount += val;
console.log(workSkillsCheckboxCount);
});
这是一个简单的解决方案:
$(".check").on("click", function() {
if ($(this).is(':checked')) {
// do your checked activity here
// if your further want to know which checkbox was checked recently then $(this).attr('name') will be handy
console.log("Checkbox "+$(this).attr('name')+" checked: true");
} else {
// do your unchecked activity here
// if your further want to know which checkbox was unchecked recently then $(this).attr('name') will be handy
console.log("Checkbox "+$(this).attr('name')+" checked: false");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="check" name="c1" type="checkbox" />
<input class="check" name="c2" type="checkbox" />
<input class="check" name="c3" type="checkbox" />
<input class="check" name="c4" type="checkbox" />
<input class="check" name="c5" type="checkbox" />
<input class="check" name="c6" type="checkbox" />
链接地址: http://www.djcxy.com/p/83463.html