我有一些代碼,從一個動態構建表中刪除一個TR作爲jQuery對象(每個TR具有一個唯一的id:TRID):替代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。
當窗體被取消我把表背的方式是:
setTimeout("tri.replaceAll($('#newr'))", 400);
這所有的作品精美,不同的是它殺死了jQuery UI的日期選擇器的形式,如果我嘗試編輯(或任何)行之後。我很難把它當成replaceAll線。如果我把它拿出來並通過再次構建來替換列表,它就可以正常工作(這也不是超時)。
那麼是否有另一種方法來取代tr'newr'與jquery對象'tri'而不使用replaceAll(replaceWith也不起作用)?
編輯:
行,所以我這是怎麼動的形式從其他地方的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他setTimeTime它發生後......
所以我想我的問題是,eP不會在#nrow中使用datepicker狀態後,只是HTML。
固定!
更改eP.appendTo
到$('#eP').appendTo
以便它從dom取代原來的變量。哎呀!感謝您讓我重新考慮這個just detach()
評論!
不要傳遞一個字符串'setTimeout' – SLaks
說什麼SLaks,只是[分離()](http://api.jquery.com/detach /)表單,你已經在別處使用它了。如果你只是在元素之間切換,你可能只是隱藏/顯示它們,而不是從DOM中刪除它們。 – adeneo
Slaks,不是我第一次聽到這樣的消息,但我一直沒能弄清楚如何在不把它放在引號中。如果我把引號拿走,它不會等待400毫秒,它只是立即執行。 –