当此函数中的switch语句运行时,IE8抛出“Error:Object required”消息(实际jquery库脚本中的错误,而不是我的javascript文件)。此代码适用于IE6,IE7,FF3和Safari ......任何想法?它是否与交换机中的'$(this)'选择器有关?谢谢!
function totshirts(){ $('.shirt-totals input').val('0'); var cxs = 0; var cs = 0; var cm = 0; $.each($('select.size'), function() { switch($(this).val()){ case "cxs": cxs ++; $('input[name="cxs"]').val(cxs); break; case "cs": cs ++; $('input[name="cs"]').val(cs); break; case "cm": cm ++; $('input[name="cm"]').val(cm); break; } }); }
答案 0 :(得分:3)
哦,不,不要那样做。
按照以下方式做更多事情:
$('.shirt-totals input').val('0');
$('select.size').each(function() {
var name = $(this).attr('name');
var currVal = parseInt($("input[name='"+name+"']").val());
$("input[name='"+name+"']").val(currVal+1);
});
作为旁注,我倾向于发现jQuery在进行“等于”比较时似乎比单引号更好地处理双引号。
答案 1 :(得分:1)
我将jQuery库从1.2.6升级到1.3.2,这解决了这个问题。没有意识到我有一个旧版本 - oops。
感谢您的帮助!