0

jquery を使用して 1 つのテーブルを作成します。

 <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>

そして、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>

表にある理由がわかりません<br><br>。その問題を回避する方法は?

ありがとう。

4

1 に答える 1

1

テキスト エディターで html を書いているかのように DOM に挿入しようとしていますが、それは間違ったアプローチです。挿入する要素はすべて完全な要素であり、すでに「閉じられています」。テーブルの最初の html を挿入し、いくつかの行を追加してから終了タグを追加することはできません。

jQuery で例として空のテーブルを挿入する場合、タグを記述する方法はいくつかあります。

 $('<table>') 
 $('<table/>')
 $('<table></table>') // skipping over tbody issues for now

3 つすべてが同じものを生成します... 完全なテーブル DOM ノードです。このテーブルは、html タグで考えると既に閉じられており、特定の IE の場合、およびおそらく他のブラウザーの場合、tbody も含まれています。html の上下が整っていると考えてください。

内部要素を追加するときは、それらも完全である必要があります。

テーブルの例は単一のタグでした。一度に複数のタグを挿入するには、エディターで知っているように、有効な閉じた html が必要です。

$('') は機能しません。この場合、両方のタグを適切な順序で閉じる必要があります。同様に、いくつかの行を追加せず、tbody と table の終了タグを挿入しようとします。

これにより、コードが断片化されないようにコードを調整する方法をよりよく理解できるはずです。

試したように断片化されたコードを挿入すると、望ましくない動作が発生し、拒否される可能性さえあります

于 2012-06-26T03:30:31.263 に答える