0
element.appendTo('<td>').appendTo('<tr>').appendTo('#ordersList')

これは、要素を新しい td 要素内、#ordersList 要素内の新しい tr 要素内に配置することになっていますか (テーブルでした)?

ラップする tr/td なしで #ordersList 内の裸の要素を取得していたからです。

私がトラブルシューティングしようとしていたこの古いサイトは、jQuery 1.4.1 を使用しているようです。これは既知のバグです。

4

2 に答える 2

3

appendTo()操作している要素を返すため、実際に行っていることは次のとおりです

  1. 新しく作成した に要素を追加しますtd
  2. から要素を切り離し、td新しく作成した に追加しtrます。
  3. からの取り外しtrと取り付け#ordersList

うまくいくのは次のようなものです。

$('<td></td>').appendTo($('<tr></tr>')​​​​​​​​​.appendTo('#ordersList')).append(element);

...読みやすさが悪い。

于 2012-04-20T16:38:36.303 に答える
1

コード削減のヘルパーは素晴らしいですが、このような単純なことにはいつでもネイティブAPIを使用できます...

function create(type) { return document.createElement(type); }
function byId(id) { return document.getElementById(id); }

byId('ordersList')
    .appendChild(create('tr'))
    .appendChild(create('td'))
    .appendChild(element);

ネイティブ.appendChild()は追加された要素を返すため、ネスト要素への呼び出しを連鎖させることができます。

于 2012-04-20T16:45:37.310 に答える