php - 我可以使用 Jquery 在动态表中插入结束 </tr> 标签和开始 <tr> 标签吗?

标签 php javascript jquery dom dynamic

我正在尝试使用下面的代码动态添加结束标记,然后再打开标记,以便我每三个单元格创建一个新行。几乎可以正常工作,DOM 检查器显示一个 TR 节点,问题是,tr 没有关闭 tr 标签。我是 Jquery 的新手,这段代码有什么问题吗?

         <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        $(document).ready(function(){
        $('td:nth-child(3n)').after('</tr><tr>');
        });
        </script>

        <table id="mytable" width="266" border="1" cellspacing="10" cellpadding="10">
        <tbody>
          <tr>
        <?php
        function somelongassfunction(){
            return 'Hello';
            }
        function have_products($a){
            return $a<=20;
            }
        $x=0;
        while (have_products($x)) {
            echo '<td>' . somelongassfunction() . '</td>';
            $x++;
        //------------------------------------- 
        /*if (fmod($x,3) == 0) {
                        echo '</tr><tr>';
                        continue;
                        }*/
        //--------------------------------------                    
        if ($x==20){
            break;
            }   
        }   
        ?>
        </tr>
        </tbody>
        </table>    

最佳答案

您不能像处理 HTML 文档一样处理 DOM 选择。 DOM 文档是节点层次结构,而不是标签层次结构。浏览器将 HTML 中的标记解析成 DOM 文档。您不能再添加一点 HTML,然后期望它被解析回 DOM 结构。

相反,您需要在 jQuery 中进行包装。这是一种可行的方法 -- 它可能不是最有效的。

$('td').each(function(idx) {
    if (idx % 3) {
        return;
    } else {
        $(this).nextAll(':lt(2)').andSelf().wrapAll('<tr/>');
    }
}).parent().unwrap();

jsFiddle

关于php - 我可以使用 Jquery 在动态表中插入结束 </tr> 标签和开始 <tr> 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553383/

相关文章:

PHP 变量不适用于高度和宽度

javascript - 如何创建显示当前网页屏幕截图的打印对话框

javascript - 使用 __proto__ 的简单 javascript 委托(delegate)

javascript - 更改 img onclick 的 href 和 src

jquery - Rails jquery ui 日期选择器

c# - 在 PHP 中编码和解码二进制 guid

php - composer.json 递归依赖

javascript - 使用Object.create(null)创建JS对象和{}一样吗?

javascript - Node.js exec 事件未在 Promise 内触发

jquery - 限制数字的html5模式