添加<;t车身>;通过jquery冗余<;br>;

添加<;t车身>;通过jquery冗余<;br>;,jquery,Jquery,我使用jquery创建了一个表: <div class="productlist" style="float:left;" id="productlist"> <script type="text/javascript" language="javascript"> function loadMore() { var $parent = $("#productlist").empty(); $parent.append('<t

我使用jquery创建了一个表:

 <div class="productlist" style="float:left;" id="productlist">
 <script type="text/javascript" language="javascript">
    function loadMore() {
       var $parent = $("#productlist").empty();
       $parent.append('<table id="myTable" cellpadding="0" cellspacing="0" width="100%" class="productlist" style="margin-left:4px; padding-top:2px;"><tbody>');
       var $table = $parent.find("#myTable > tbody");
       var htmlRow = [
                     '<tr align="center">',
                     '<td align="center" id="colunm-product">',
                     '<br />',
                     '<div id="brand-item"><a href="#" class="brand_id"><img src="' + value.BrandImage + '" width = "85px"/></a></div>',
                     '<div id="product_image"><a href="'+'<%: Url.Content("~/") %>' +'Products/ProductSpec/' + value.ID +'?dep='+ value.DepartmentID +'&cat='+value.CategoryID+'&tab=2" style="text-decoration:none"><img src="' + value.PictureName + '" alt="Product" width="135px"/></a></div>',
                     '</td>',
                     '</tr>'
                      ];
      $table.append(htmlRow.join(''));
      $("#myTable > tbody").append('</tbody></table>');
   }
  </script>

函数loadMore(){
var$parent=$(“#产品列表”).empty();
$parent.append(“”);
var$table=$parent.find(#myTable>tbody);
var htmlRow=[
'',
'',
“
”, '', '', '', '' ]; $table.append(htmlRow.join(“”)); $(“#myTable>tbody”)。追加(“”); }
我调用document.ready中的函数。但在我看来,结果出乎意料:

 <table id="myTable" cellpadding="0" cellspacing="0" width="100%" class="productlist" style="margin-left:4px; padding-top:2px;">
    <tbody>
      <br/><br/>
      <tr> my data </tr>
    </tbody></table>



我的数据
我不知道为什么表中有


。如何避免这个问题


谢谢。

您试图像在文本编辑器中编写html一样插入DOM,这是错误的方法。插入的任何元素都是完整的元素,并且已“关闭”。您不能插入表的开始html,添加一些行,然后添加结束标记…就像您编写它一样

以jQuery为例插入空表时,有几种方法可以写入标记:

 $('<table>') 
 $('<table/>')
 $('<table></table>') // skipping over tbody issues for now
$(“”)
$('')
$('')//现在跳过tbody问题
所有三个生产相同的东西。。。一个完整的表DOM节点。这个表已经被关闭了,因为我们认为它带有html标签,对于IE,可能还有其他浏览器,它也有一个tbody。可以将其视为html的顶部和底部都已就位

现在,当我们附加内部元素时,它们也需要是完整的

表示例是一个单个标记,一次插入多个标记需要有效的封闭html,正如我们在编辑器中所知道的那样

$('')不起作用,在这种情况下,两个标记都需要按正确的顺序关闭。类似地,我们不会像您所尝试的那样,在添加一个行数之后,尝试为tbody和table添加结束标记

我相信这会让你更好地理解如何调整你的代码,使之不至于支离破碎


在您尝试插入片段代码时,会产生不必要的beahvior,甚至可能会被拒绝

我认为您不打算使用不平衡的html片段调用
.append()
。我不确定这是否与您的问题有关,但我会首先一次性添加完整的空表,然后添加行,这是对的吗?但在我看来,一切都没有改变。页面中现有的html有效吗?尝试在块元素之前删除

,无需这样做。也不需要清空$parent,可以使用$parent.html()