2010-10-29 84 views
0

我有以下的jQuery代码,在IE8,FF但在IE8补偿模式下,它给这个错误JavaScript错误在IE8 compatibitlity模式

网页错误的详细信息

用户代理工作正常:Mozilla的/ 4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Creative AutoUpdate v1 .30.00) 时间戳:Fri,2010年10月29日22:12:03 UTC

消息:对象不支持此属性或方法 行:162 字符:44 代码:0

这里是线162

$(this).attr('onChange', function(iii,vvv){return vvv.replace('_','');}); 

以下是完整的脚本

<script type="text/javascript" language="javascript"> 
$(document).ready(function(){ 
$("select[name^=SELECT___]").each(function(){ 
$(this).attr('onChange', function(iii,vvv){return vvv.replace('_','');}); 
}); 
$("a[href^='javascript:change_option']").each(function(){ 
$(this).attr('href', function(ii,vv){return vv.replace('_','');}); 
}); 
}); 
</script> 

是什么原因造成这个错误?有另一种方法可以做我想做的事吗?

我需要做的是在页面上的以下代码的每个实例中将“change_option”更改为“changeoption”,也许有更好的方法来做到这一点。

这里是HTML代码。我没有访问这个网站码

编辑:

<select onChange="change_option('SELECT___100E___7',this.options[this.selectedIndex].value)" name="SELECT___100E___7"> 

这是商务部申报。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

回答

1

我需要做的是改变 “change_option”对 “changeoption”在 下面的代码的每个实例的页面,或许有这样做的更好的方式 。

也许吧。为什么你不能创建一个更改选项的别名(假设你已经定义了该功能)?

var change_option = changeoption; 
+0

我不关注你。我不明白这是如何调用changeoption函数而不是change_option函数的。你能解释一下吗? – user357034 2010-10-29 23:30:25

+0

函数就像在JavaScript中的任何其他变量。它和'var b = 10; var a = b;警报(a)'当然它会提醒a的值,但它与b具有相同的值。或者,也许我完全误解了你的问题。 – 2010-10-29 23:45:57

+0

为了说明,现在当名称以SELECT___开头的每个选择框中发生更改时调用的函数是change_option(xxxxxx,xxxxxx)我希望被调用的函数是此更改选项(xxxxxx,xxxxxx)。现在我试着用上面看到的替换函数来做,但只能在FF和IE8中工作,但在IE8压缩模式下出现javascipt错误。我希望这是更有意义的。 – user357034 2010-10-29 23:52:43