2014-05-22 1 views
0

작동하지 않는 코드가 있습니다. 그것은 내 PHP 파일에 대한 .ajax 호출을 만들고 필요에 따라 데이터 배열을 검색합니다.Chrome 브라우저 디버거에서 jQuery 문을 "정의되지 않은 함수"로 반환합니다.

그러나 배열을 반복 할 때 기존 테이블에 DOM 요소를 동적으로 만들려고합니다. 이 함수 호출 시점에서 "정의되지 않은 함수"라는 오류가 발생하여 경고 작업이 DO 작업을 주석 처리 했으므로 데이터가 반환되고 루프가 입력되었음을 알 수 있습니다. 왜 DOM 요소와 속성을 작성하는 구문이 작동하지 않는지를 알 수 없습니다.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> </script> 
        <script type="text/javascript"> 
         $.ajaxSetup({ 
          cache: false 
         }); 
         $(document).ready(
         function(){ 
          $.ajax({ 
           url: "PHPLibrary/selectMemberResults.php", 
           type: "POST", 
           dataType: "json", 
           success: function (data) { 
            //alert("1 Total number of rows of data >" + data.length + "<"); 
             for (var j = 0; j < data[i].length; j++) { 
              //alert("2 Total number of rows of data >" + data[i].length + "<"); 
              $memName = data[i][0]; 
              $busName = data[i][1]; 
              //alert($memName); 
              //alert($busName); 
              (function ($) { 
              $('tr').attr({width:"100%",id:"row"}).appendto('#memberResults'); 
              $('td').text($memName).appendto("row"); 
              $('tr').attr({width:"100%",id:"row"}).appendto('#memberResults'); 
              $('td').text($busName).appendto("row"); 
              }(jQuery)); 
           } 
          }); 
         }); 
        </script> 

마지막으로 참고, 내가 겪었과 세미콜론으로 종료됩니다 괄호을 모두 수행 모든 중괄호와 대괄호가 올바른 순서로 쌍을 일치하는 것을 확인했습니다 (;).

모든 의견이나 도움을 주시면 감사하겠습니다.

감사합니다 !!!!

+0

'$ ('tr')'는 현재 페이지에있는 ''을 모두 선택합니다. '$ ('')'는 새로운 요소를 생성합니다. –

+2

또한, 'appendto' ->'appendTo' –

+1

그리고 요소 id는 유일해야합니다 ('row'가 복제 됨). –

답변

2

요소를 만들려고하면 구문이 잘못되었습니다. 현재 요소를 선택하고 있습니다. 예를 들어,이 코드 :

$('tr').attr({ width: "100%", id: "row" }).appendTo('#memberResults'); 

것은 페이지의 모든tr 요소를 선택하고 #memberResults로 추가됩니다. 대신이 구문을 사용해야합니다.

$('<tr />').attr({ width: "100%", id: "row"}).appendTo('#memberResults'); 

선택기에서 HTML과 유사한 꺾쇠 괄호에 유의하십시오.

$('<tr />', { width: "100%", id: "row" }).appendTo('#memberResults'); 

를 마지막으로는 appendTo()하지 appendto() 있어야하고, 또한 당신이 돈 '주의 : 당신은 당신의 마지막 코드가되도록 또한, 새로운 요소에 필요한 속성을 적용 할 jQuery 오브젝트의 두 번째 매개 변수를 사용할 수 있습니다 추가 된 요소로 id 속성을 복제하지 마십시오. 대신에 수업을 사용하는 것이 좋습니다.

+0

좋은 인물, 고마워! 이제 행 ID에 테이블 행을 추가하는 것과 관련하여 ... 어떻게 동적으로 만들 수 있습니까? 행의 결과가 데이터베이스에서 빠져 나오기 때문에 .... 예를 들어, 동적으로 "row1", 다음 "row2"등으로 호출하고 싶습니다. ..... 변수로 처리 한 다음 부모의 ID를 선언 할 위치에 변수를 넣어야합니까? 추가할까요? – zeroBelief

+0

난 하나의 클래스 만 사용한다. 증분 ID는 항상 유지 보수의 악몽이됩니다. 행을 식별 할 수있는 방법이 필요한 경우 클릭시 잡을 수있는 데이터 속성으로 DB id를 추가하십시오. –