2011-08-24 30 views
6

Tôi có một trang web hoạt động tốt trong FireFox và Chrome, nhưng bị ngắt hoàn toàn trong IE.SCRIPT 600 Lỗi: Phần tử mục tiêu không hợp lệ cho thao tác này

Đây chỉ là một trong các tập lệnh đang phát một lỗi ... SCRIPT600: Phần tử mục tiêu không hợp lệ cho thao tác này.

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

Nó ném lỗi trên dòng đặt innerHTML ... Mọi ý tưởng tại sao điều này xảy ra?

+2

Phần tử có id 'dealdata' là gì? – Paulpro

+3

Nếu bạn đã sử dụng jQuery, thì tại sao không cho jQuery? '$ ('# dealdata'). html (phản hồi)'. –

+0

Đó là một phần tử tbody. –

Trả lời

3

Hãy thử cách này: bạn có đang sử dụng jquery không?

cũng có vẻ như bạn có thêm một bộ khung trong đó (tôi nghĩ rằng giữa ,{},)

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

'{}' chỉ gửi một đối tượng trống làm tham số GET, nó không nên phá vỡ bất cứ thứ gì. –

+0

nhưng http://api.jquery.com/jQuery.get/ –

+0

không cần thiết của nó Tôi không biết rằng mặc dù đó là tốt để biết để gỡ lỗi trong tương lai. –

12

IE có vấn đề thay thế nội dung tbody với innerHTML. JQuery đưa ra các tác phẩm trên; nếu bạn không sử dụng jQuery, giải pháp khác là có một <div id='helper' style='visibility:hidden'/> ở đâu đó trong trang - khi phản hồi đến, hãy đặt giá trị bằng thẻ <table> xung quanh vào div ẩn, sau đó sử dụng DOM để xóa nội dung cũ khỏi thẻ hiển thị của bạn và chèn các phần tử từ thẻ ẩn 1 của 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

Để tất cả: Nếu bạn đang chạy vào lỗi này trong ASP.NET MVC với "Ajax.BeginForm" - rất có thể "UpdateTargetId" là một bảng. Thêm một DIV xung quanh và thay đổi "UpdateTargetId" cho phù hợp. – Alex

Các vấn đề liên quan