2012-04-20 3 views
0
element.appendTo('<td>').appendTo('<tr>').appendTo('#ordersList') 

これは、要素を新しいtd要素の中に入れて、#ordersList要素内の新しいtr要素(表)内に配置することになっていますか?.appendToとHTMLリテラル

私はラップするtr/tdを使わずに#ordersListの中で裸の要素を取得していたので、

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

+1

そうするつもりです。私はそれが実際に何かをしているかどうか(私の方法でそれを試してみる)に興味があるでしょう。 '$( ').append($(' ').append(要素))。appendTo('#ordersList ')'のように見えます。 – Kato

+0

@Katoテーブルを取り除いて人生を変えてしまいましたが、なぜこのコードがレンダリングされているのか(テーブル内のゴミのブラウザー寛解)と元のコーダーの意図とは何かを理解しようとしました。 –

+0

私も;私は答えを食べていて、私はバイブルをしている間は何の仕事もしていません。私はこれを書いた人と私たちの違いだと思う。私たちは何が目立つかを知りたい。彼らは表面的に、彼らが書いたものが動くかどうかを知りたくなかった! ;) – Kato

答えて

3

appendTo()は、操作中の要素を返します。したがって、you're actually doingは何ですか;

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

何このようなものになるだろうに働くだろう。

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

...可読性のために吸う。

+0

私は今理解しています。それをきれいにして、外側のテーブルをまったく使用しないで移動しました。 –

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()ネイティブので、追加要素を返します。呼び出しをネスト要素にチェーンすることができます。

関連する問題