2010-10-29 86 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