2011-08-24 4 views
6

FireFox 및 Chrome에서는 제대로 작동하지만 IE에서는 완벽하게 작동하는 PHP 사이트가 있습니다.SCRIPT 600 오류 :이 작업의 대상 요소가 잘못되었습니다.

다음은 오류를 던지고있는 스크립트 중 하나입니다. SCRIPT600 :이 작업의 대상 요소가 잘못되었습니다.

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

innerHTML을 설정하는 줄에 오류가 발생합니다. 왜 이런 일이 발생하는지 알고 싶습니다.

+2

'dealdata'라는 ID를 가진 요소는 무엇입니까? – 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

전체 : ASP.NET MVC에서 "Ajax.BeginForm"으로이 오류가 발생하는 경우 "UpdateTargetId"가 테이블 일 가능성이 큽니다. 주변 DIV를 추가하고 이에 따라 "UpdateTargetId"를 변경하십시오. – Alex

관련 문제