2014-05-22 43 views
0

我有下面的代碼確實有效。它使.ajax調用我的php文件,根據需要檢索數據數組。Chrome瀏覽器調試器返回jQuery語句爲「未定義的函數」

但是,當我開始循環數組時,我試圖在現有表內動態創建DOM元素。在這些函數調用的時候,我得到錯誤「未定義的函數」,請注意,註釋掉的警報工作,所以我知道數據正在返回,並且循環被輸入。我只是不明白爲什麼我的語法來創建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必須是唯一的('行'被重複)。 –

回答

2

如果您嘗試創建元素,那麼您的語法不正確;目前您正在選擇元素。例如下面的代碼:

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

是選擇頁面中所有tr元素,並將它們附加到#memberResults。相反,您需要使用以下語法:

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

請注意選擇器中類似HTML的尖括號。您還可以使用jQuery對象的第二個參數所需要的屬性應用到新的元素,讓你的最終代碼變成:

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

最後,它應該是appendTo()appendto(),也小心你不」用您的附加元素複製id屬性。我會建議在他們上面使用一個類。

+0

偉大的輸入傢伙,謝謝!現在,關於追加到錶行的ID爲ROW ....我怎麼能做到這一動態,因爲這是所有的行數據被從數據庫中拉出來的結果....例如,我想動態地稱它爲「row1」,然後是下一個「row2」等,等.....我應該只是做一個變量,然後把變量放在我聲明的父母的ID追加到? – zeroBelief

+0

我只會使用一個類。增量ID總是成爲維護的噩夢。如果您需要某種方法來識別行,請將數據庫標識添加爲數據屬性,您可以通過點擊來獲取該數據屬性。 –

相關問題