我有这个内部应用程序。它在IE9(和所有其他浏览器)中运行良好,但一些内部用户仍然在IE8上。
导致问题的一行是:
var thisClass = $thisElement.attributes.class.value;
我收到的错误信息是“SCRIPT1010:预期的标识符”,标记就在课堂上的c之前。
以下是代码:
$(document).on('click', function(){
var $this = $(this);
var $thisElement = $this.context.activeElement;
if ($thisElement != null && $thisElement.attributes.type != null && $thisElement.attributes.type.value == "checkbox" ){
var thisClass = $thisElement.attributes.class.value;
var thisValue = $thisElement.value;
if (thisValue == "All"){
if($thisElement.checked){
$('input[class="'+thisClass+'"]').each(function(i){
var checkboxValue = $(this).val();
$("#"+thisClass+checkboxValue).prop('checked',true);
});
}else {
$('input[class="'+thisClass+'"]').each(function(i){
var checkboxValue = $(this).val();
$("#"+thisClass+checkboxValue).prop('checked',false);
});
}
}else // since the val is not = all we want to uncheck the all box if any of the bottom boxes is unchecked
if (!$thisElement.checked){
$("#"+thisClass+"All").prop('checked',false);
}
cnse.checkTheCheckboxes();
}else{
return;
};// end if it is a checkbox
});
答案 0 :(得分:3)
基于ECMAScript 3的引擎,与IE8中的引擎一样,不允许将保留字用作带点符号的标识符。对于他们,您需要使用bracket notation引用class
:
var thisClass = $thisElement.attributes["class"].value;
ECMAScript 5更改了一些用例以允许使用Identifier Names rather than just Identifiers,包括使用dot notation。这就是为什么它在IE9中有效。
您也可以将className
property简单地用作Marc suggested,因为这不是保留字。
答案 1 :(得分:1)
如果您希望在HTML中获取元素的类,则需要在元素本身上使用className
属性:
var thisClass = $thisElement.className;