2011-08-24 104 views
6

我有一個在FireFox和Chrome中正常工作的php站點,但在IE中完全中斷。SCRIPT 600錯誤:此操作的目標元素無效

這裏只是引發錯誤的腳本之一... SCRIPT600:此操作的目標元素無效。

function loadDeals() { 
    $.get("modules/recommendations/viewrecommendations.php",{},function(response){ 
     document.getElementById("dealdata").innerHTML = response; 
    }); 
} 

它引發錯誤上設置的innerHTML行...任何想法,爲什麼發生這種情況?

+2

什麼是ID爲「dealdata」的元素? – Paulpro

+3

如果你已經使用jQuery,那麼爲什麼不呢? '$( '#dealdata')。HTML(響應)'。 –

+0

這是一個tbody元素。 –

回答

3

試試這個:你用的是jQuery嗎?

也像你在那裏有一組額外的括號(我認爲,{},之間)

function loadDeals() { 
    $.get("modules/recommendations/viewrecommendations.php",function(response){ 
     $("#dealdata").html(response); 
    }); 
} 
+0

'{}'只是發送一個空白對象作爲GET參數,它不應該破壞任何東西。 –

+0

,但它不必要的http://api.jquery.com/jQuery.get/ –

+0

我不知道,雖然這是很好知道未來的調試。 –

12

IE與innerHTML的替代TBODY內容的問題。上面給出的jQuery的作品;如果你不使用jQuery,另一個解決方案是在頁面的某個地方有一個<div id='helper' style='visibility:hidden'/> - 當響應到達時,將值與周圍的<table>標記放在隱藏的div中,然後使用DOM從可見標記中刪除舊內容並通過1插入隱藏標籤1中的元素:

var a=document.getElementById("dealdata"); 

while(a.firstChild!=null) 
    a.removeChild(a.firstChild); 

var b=document.getElementById("helper"); 
b.innerHTML="<table>"+this.responseText+"</table>"; 
while(b.tagName!="TR") { 
    if(b.tagName==null) 
    b=b.nextSibling; 
    else 
    b=b.firstChild; 
} 
for(;b!=null;b=b.nextSibling) 
    a.appendChild(b); 
+0

To All:如果你在ASP.NET MVC中遇到「Ajax.BeginForm」這個錯誤 - 很可能「UpdateTargetId」是一個表。添加周圍的DIV並相應地更改「UpdateTargetId」。 – Alex

相關問題