function hasChooseHandler() { for(var i=0; i<$("li").size(); i++) { for(var j=0; j<4; j++) { //如果是多选 if($("dd").eq(i).children("div").eq(1).children("p").eq(j).attr('data-type') == 'checkbox'){ var checkboxOption = $($("dd").eq(i).children("div").eq(1).children("p").eq(j).children("input[type='checkbox']").get(0)); if(checkboxOption.prop('checked')){ $("li").eq(i).css("background-color", "green"); break; } continue; } //如果是简答 if($("dd").eq(i).children("div").eq(1).children("p").eq(j).attr('data-type') == 'textarea'){ var checkboxOption = $($("dd").eq(i).children("div").eq(1).children("p").eq(j).children("textarea")); if(checkboxOption.val() != ''){ $("li").eq(i).css("background-color", "green"); } break; } if($("dd").eq(i).children("div").eq(1).children("p").eq(j).children("input").get(0).checked) { $("li").eq(i).css("background-color", "green"); break; } } } }
时间: 2023-06-20 07:06:17 浏览: 60
这是一个判断用户是否选择了答案并且将选择的题目标记为绿色的函数。它首先遍历所有的题目,然后对于每个题目,它再遍历所有的选项。如果题目是多选题,则检查是否有选项被选中,如果有,则将该题目标记为绿色,并跳出内部循环。如果题目是简答题,则检查答案是否非空,如果非空,则将该题目标记为绿色,并跳出内部循环。如果题目是单选题,则检查哪个选项被选中,如果有选项被选中,则将该题目标记为绿色,并跳出内部循环。最后,返回值为undefined。
相关问题
请指出下面代码的错误var smis=document.querySelectorAll("#smi"); var jpgs=document.querySelectorAll("#jpg"); jpgs[0].style.display="block"; smis[0].style.padding="1px"; smis[0].style.border="1px solid gray"; for (var i=0;i<smis.length;i++){ smis[i].setAttribute('index',i); smis[i].onclick=function(){ for(var i=0;i<smis.length;i++){ smis[i].style.border="0"; smis[i].style.padding="0"; } this.style.padding="1px"; this.style.border="1px solid gray"; var index=this.getAttribute("index"); for(var i=0;i<smis.length;i++){ jpgs[i].style.display="none"; } jpgs[index].style.display="block"; } } var but=document.getElementById("but"); var j=1; function change(){ for(var i=0;i<jpgs.length;i++){ jpg[i].style.display="none"; smis[i].style.border="0"; smis[i].style.padding="0"; } if(j==4) j=0; jpg[j].style.display="block"; smis[j].style.padding="1px"; smis[j].style.border="1px solid gray"; j++; } var change=setInterval(change,1000); for(i=0;i<jpgs.length;i++){ jpgs[i].onmouseover=function(){ clearInterval(change); } } for(i=0;i<jpgs.length;i++){ jpgs[i].onmouseout=function(){ change=setInterval(change,1000); } }
代码中的错误在于第26行的变量名重复,将 setInterval 的返回值赋值给了与函数同名的变量,导致函数无法被正确调用。需要将变量名改成其他名称,如下所示:
```
var smis=document.querySelectorAll("#smi");
var jpgs=document.querySelectorAll("#jpg");
jpgs[0].style.display="block";
smis[0].style.padding="1px";
smis[0].style.border="1px solid gray";
for (var i=0;i<smis.length;i++){
smis[i].setAttribute('index',i);
smis[i].onclick=function(){
for(var i=0;i<smis.length;i++){
smis[i].style.border="0";
smis[i].style.padding="0";
}
this.style.padding="1px";
this.style.border="1px solid gray";
var index=this.getAttribute("index");
for(var i=0;i<smis.length;i++){
jpgs[i].style.display="none";
}
jpgs[index].style.display="block";
}
}
var but=document.getElementById("but");
var j=1;
function change(){
for(var i=0;i<jpgs.length;i++){
jpgs[i].style.display="none";
smis[i].style.border="0";
smis[i].style.padding="0";
}
if(j==4)
j=0;
jpgs[j].style.display="block";
smis[j].style.padding="1px";
smis[j].style.border="1px solid gray";
j++;
}
var interval=setInterval(change,1000);
for(i=0;i<jpgs.length;i++){
jpgs[i].onmouseover=function(){
clearInterval(interval);
}
}
for(i=0;i<jpgs.length;i++){
jpgs[i].onmouseout=function(){
interval=setInterval(change,1000);
}
}
```
function myAll(){ var all = document.getElementById('all'); var oneList = document.getElementsByName('one'); for(var i = 0; i < oneList.length; i++){ oneList[i].checked = all.checked; } } //下面全选上面同时跳全选 function myOne(){ var all = document.getElementById('all'); var oneList = document.getElementsByName('one'); for(var i = 0; i < oneList.length; i++){ if(oneList[i].checked == false){ all.checked = false; return; } } all.checked=true; }根据以上代码生成购物车选中商品计算总价代码
假设每个商品的价格存在一个属性`data-price`中,可以通过以下代码实现选中商品计算总价的功能:
```javascript
// 获取所有商品复选框元素和全选复选框元素
var all = document.getElementById('all');
var oneList = document.getElementsByName('one');
// 添加全选和每个商品的点击事件监听器
all.addEventListener('click', function(){
myAll();
calculateTotalPrice();
});
for (var i = 0; i < oneList.length; i++) {
oneList[i].addEventListener('click', function(){
myOne();
calculateTotalPrice();
});
}
// 计算总价的函数
function calculateTotalPrice() {
var totalPrice = 0;
for (var i = 0; i < oneList.length; i++) {
var one = oneList[i];
if (one.checked) {
var price = parseFloat(one.getAttribute('data-price'));
totalPrice += price;
}
}
console.log('总价为:' + totalPrice);
}
// 全选函数
function myAll() {
for(var i = 0; i < oneList.length; i++){
oneList[i].checked = all.checked;
}
}
// 单选函数
function myOne() {
for(var i = 0; i < oneList.length; i++){
if (oneList[i].checked == false) {
all.checked = false;
return;
}
}
all.checked = true;
}
```
以上代码中,`calculateTotalPrice()`函数用于计算选中商品的总价,`myAll()`和`myOne()`函数用于处理全选和单选事件。在`myAll()`和`myOne()`中,分别设置商品复选框的选中状态和全选复选框的选中状态。在每个复选框的点击事件中,都调用了`calculateTotalPrice()`函数计算选中商品的总价,并将结果输出到控制台。