Chrome浏览器调试器将jQuery语句作为“未定义函数”返回

时间:2014-05-22 15:42:30

标签: php jquery ajax function element

我下面的代码确实有效。它使.ajax调用我的php文件,根据需要检索数据数组。

但是,当我开始循环遍历数组时,我试图在现有表中动态创建DOM元素。在这些函数调用时,我得到错误“未定义的函数”,请注意注释掉警报DO工作,所以我知道正在返回数据,并且正在输入循环IS。我只是想不通为什么我创建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>

最后一点,我已经完成并检查所有花括号和括号是否具有匹配的对,顺序正确,所有括号都以分号(;)结尾。

非常感谢任何想法或帮助。

感谢!!!!

1 个答案:

答案 0 :(得分: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属性与附加元素重复。我建议改用它们。