如何使用jquery将此动态行追加或添加到表中

时间:2010-10-24 18:45:29

标签: jquery jquery-ui jquery-selectors

                $ J = 1;             ?>                      var t ='';             var options =“”;

    </script>   
        <?php 
        foreach ($this->data['DEFAULTS'] as $rec){
            foreach ($rec as $key=>$val){
        ?>
        <script type="text/javascript">
        var cntr = "<?php echo $j;?>";
        var reference_value = '<?php echo $val["GETVAL"];?>';
        var sel = '<select name="code[]">'+options+'</select>';
        var txt  = '<input type="text" class="TextBox" name="referencevalue[]"  valign="top" value="'+ reference_value +'">';                  
            t += '<tr id ='+cntr+'><td>'+cntr+'</td><td valign="top">'+sel+'</td><td valign="top" ailgn="center">'+txt+'</td></tr>';                        
            </script>

        <?php
        $j++;               
                }
            }
        ?>
        <script type="text/javascript">
        alert("MYTABLE "+t);
        $("#ref").append(t);
        </script>

       when i say alert(t) iam getting the entire table structure  and the data  but iam not able to add it  to the table 
   .Here is the Table Structure where i have to add 
                <table width="100%" cellspacing="2" cellpadding="2" align="left">
                <tbody><tr>
                <th class="coltextleft">
                <span style="font-size: 14px; font-weight: bold;" id="id_refTbl">
                <img id="IMG1" height="15" width="15" align="middle" src="cllpsed.gif"/> </span>
                </th>
                </tr>
                <tr><td>
                <div id="ref" style="display:none">
                <table id="ref" width="100%" class="formTable">
                <tr>
                    <td>&nbsp;</td>
                    <td>  Code</td>
                    <td> Value</td>
                    <td>&nbsp;</td>
                </tr>
                <tr><td>I need to add  the result of alert(t) with inthis rows</td></tr></table>

2 个答案:

答案 0 :(得分:1)

首先,问题的一个元:你为什么要这样做?为什么不通过PHP直接在页面中呈现标记而不是为客户端呈现<script>元素来完成相同的任务呢?


直接回答:您的代码需要包装在document.ready处理程序中,因为执行时id="ref"元素尚未包含在DOM中:

$("#ref").append(t);

所以它找不到那个尚不存在的元素。将其包装在ready处理程序中,如下所示:

$(function() {
  $("#ref").append(t);
});

这种方式在DOM完全加载/准备好之后执行,而#ref选择器找到您所追踪的<table>


为了完成这项工作,您还需要从id中移除<div id="ref" style="display:none">,因为ID必须是唯一的。

答案 1 :(得分:1)

如果变量t是整个表格标记,那么,如果你试图将它附加到表格中,那可能不起作用。你可能想要:

var t = '<tr><td>foo</td></tr>'

此时,你应该能够:

$("table#ref").append(t)

jQuery#append将标记添加到目标元素的子节点的末尾。