我正在尝试使用下面的代码动态添加结束标记,然后再打开标记,以便我每三个单元格创建一个新行。几乎可以正常工作,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();
关于php - 我可以使用 Jquery 在动态表中插入结束 </tr> 标签和开始 <tr> 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553383/