2012-05-10 15 views
0

私は(各trは固有のIDがあります:TRIDを):jQueryオブジェクトとして動的に構築されたテーブルからTRを削除するいくつかのコードを持っているjQueryの代わりにreplaceAll()?

tri = $("#"+trid+""); 
var newrow = '<tr id="newr"><td colspan="4" align="center"><div id="nrow"> </div></td></tr>'; 
tri.after(newrow); 
tri.detach(); 

私は、innerHTMLプロパティを使用してdivの「nrow」でフォームを置きます... jQueryのui datepickerがこの初めての動作のフォームにあります。

フォームは、私はそれがあった方法に戻ってリストを入れてキャンセルされた場合:私は(それを編集しようとした場合、それは形でjqueryのUIの日付ピッカーを殺すことを除いて、

setTimeout("tri.replaceAll($('#newr'))", 400); 

このすべての作品美しくまたはそれ以降の任意の行)。私はreplaceAll行であることにそれを打ちました。私がそれを取り出して、それをもう一度ビルドすることでリストを置き換えれば、それはうまくいく(タイムアウトでもない)。

replaceAllを使用せずにtr 'newr'をjqueryオブジェクト 'tri'に置き換える別の方法があります(replaceWithも機能しません)?

EDIT:

OKので、これは私が他の場所でページ上のdivからフォームを移動する方法です:

eP = $('#eP'); 
eP.replaceAll($('#nrow')); 
$("#editPast").show('blind','',500,''); 

EPは隠しのdiv editPastが含まれています...

、その後でキャンセル機能私はePバックを入れました:

setTimeout(function() {eP.appendTo($('#ePreplace')); }, 500); (thanks adeneo!) 

前に私はtri.replaceAll、tで彼はsetTimeoutの後に起こる...

だから私の問題は、#nrowで使用された後、ePがdatepicker状態を運ぶのではなく、ちょうどhtmlだと思う。


FIXED!

eP.appendToからに変更され、元の変数の代わりにdomから取得されます。おっとっと!私はあなたのjust detach()コメントでこれを再考してくれてありがとう!

+1

はhttp://api.jquery.com([(切り離し)]だけ言って、何SLaks setTimeout' – SLaks

+1

'に文字列を渡してはいけません/ detach /)フォームをもう一度使用すると、すでに他の場所で使用しています。要素間の切り替えだけであれば、DOMを非表示にしたり、DOMから削除したりすることはできません。 – adeneo

+0

スラークは、初めて聞いたことではありませんが、引用符で囲まずにそれをどうやって行うのか分かりませんでした。引用符を取り除くと、400ミリ秒を待たずにただちに処理します。 –

答えて

0

FIXED!

は、eP.appendToを$( '#eP')。appendToに変更して、元の変数の代わりにdomから取得するようにしました。おっとっと!ありがとうございますadeneo私はあなたの 'detach()'のコメントでこれを再考する!

おかげNiftyDudeは私もこれを行う示唆するために...