Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery replaceAll()的替代方案?_Javascript_Jquery_Jquery Ui_Html Table - Fatal编程技术网

Javascript jQuery replaceAll()的替代方案?

Javascript jQuery replaceAll()的替代方案?,javascript,jquery,jquery-ui,html-table,Javascript,Jquery,Jquery Ui,Html Table,我有一些代码将tr作为jQuery对象从动态构建的表中删除每个tr都有一个唯一的id:trid: tri = $("#"+trid+""); var newrow = '<tr id="newr"><td colspan="4" align="center"><div id="nrow"> </div></td></tr>'; tri.after(newrow); tri.detach(); 这一切都运行得很好,只是如果我

我有一些代码将tr作为jQuery对象从动态构建的表中删除每个tr都有一个唯一的id:trid:

tri = $("#"+trid+"");
var newrow = '<tr id="newr"><td colspan="4" align="center"><div id="nrow"> </div></td></tr>';
tri.after(newrow);
tri.detach();
这一切都运行得很好,只是如果我试图编辑该行或其后的任何行,它会杀死表单中的jQueryUIDatePicker。我很难把它说成是替代品。如果我把它取出来,通过重新构建来替换列表,它就可以正常工作,也不是超时

那么,有没有其他方法可以在不使用replaceAll replaceWith的情况下用jquery对象“tri”替换tr“newr”呢

编辑:

这就是我如何将表单从页面上的div移到别处的方法:

eP = $('#eP');
eP.replaceAll( $('#nrow') );
$("#editPast").show('blind','',500,'');
eP包含隐藏的div editPast

然后在取消功能中,我将eP放回:

setTimeout(function() {eP.appendTo($('#ePreplace')); }, 500);  (thanks adeneo!)
在我tri.replaceAll之前,虽然设置超时发生在

所以我想我的问题是,eP在nrow中使用后没有携带datepicker状态,只有html

修正

将eP.appendTo更改为$'eP'.appendTo,以便它从dom而不是原始变量获取它。哎呀!谢谢你的评论让我重新思考这个问题

修正了

将eP.appendTo更改为$'eP'.appendTo,以便它从dom而不是原始变量获取它。哎呀!感谢adeneo用你的“刚刚分离”评论让我重新思考这个问题


谢谢NiftyDude建议我也这么做…

不要像SLaks说的那样将字符串传递给SetTimeOut,第二次只是表单,你已经在其他地方使用了它。如果你只是在元素之间切换,你可能只是隐藏/显示它们,而不是将它们从DOM.Slaks中删除,这不是我第一次听说,但我一直无法在不加引号的情况下想出如何做。如果我去掉引号,它不会等待400毫秒,它只会立即执行。setTimeoutfunction{tri.replaceAll$'newr'},400@K'shin,请看@adeneo的评论,这是setTimeout的正确用法。你在w3schools.com上学会了引用吗?
setTimeout(function() {eP.appendTo($('#ePreplace')); }, 500);  (thanks adeneo!)