是否可以使用jquery将一个div移动到另一个div中而不重新呈现html?

是否可以使用jquery将一个div移动到另一个div中而不重新呈现html?,jquery,Jquery,好吧,我可能会把一些能够回答这个问题的人弄糊涂,我会按照我理解的方式来设置。请容忍我 假设我有这样一个div数组: <div id="par1"><span>Text 1</span></div> <div id="par2"><span>Text 1</span></div> <div id="par3"><span>Text 1</span></div&g

好吧,我可能会把一些能够回答这个问题的人弄糊涂,我会按照我理解的方式来设置。请容忍我

假设我有这样一个div数组:

<div id="par1"><span>Text 1</span></div>
<div id="par2"><span>Text 1</span></div>
<div id="par3"><span>Text 1</span></div>
<div id="par4"><span>Text 1</span></div>
Text 1
文本1
文本1
文本1
然后,我有一个隐藏的div,其中有一个文本框,其作用类似于编辑器:

<div id="editor" style="display: hidden"><input id="uniqueID$textbox" type="text" /></div>

我想在jQuery中实现的是,当我单击每个div时,可视化地显示上面div中的#editordiv。我不打算在这些div中使用单独的输入框,并在需要时显示它们,我只打算为每个div使用一个文本框


我希望我能很好地解释我的问题,并希望你们能提供帮助

你们可以用id
编辑器
克隆div,并将其放入单击的div中,如下所示:

var $clone = $('#editor').clone();

$('div[id^="par"]').click(function(){
  $(this).append($clone);
});

您可能希望在单击时用
元素替换
,如

$(function(){
  $('span').bind('click', function(){
     $(this).replaceWith($('<input/>', {
        id:       'newinp',
        type:     'text',
        focusout: function(){
           $(this).replaceWith('<span>' + $(this).val() + '</span>');
        }
     }));       
     $('#newinp').focus();
  });
});​
$(函数(){
$('span').bind('click',function(){
$(此)。替换为($(''){
id:'newinp',
键入:“文本”,
focusout:function(){
$(this.replacetwith(“”+$(this.val()+“”);
}
}));       
$('#newinp').focus();
});
});​

工作示例:

您无法避免重新呈现HTML,但我怀疑您只是想重新呈现整个页面。在JS中当然是可能的,在jquery中,我相信您希望结合使用
detach()
append()
/
prepend()
/
*pendTo()
方法,正如文档示例所示。

很聪明,但我不希望这样做,因为那样会重复ID。还有其他方法吗?谢谢你,伙计@马丁:你说的是哪种元素的id?也许我没有彻底解释我的问题。我道歉。我使用的是telerik控件,在这种情况下,我不能通过javascript重新生成控件(比如日期选择器)。这些控件集为每个元素(输入DOM)生成唯一的ID,因此根据您的示例,附加它不会像普通输入框那样工作。嗯。。。我试试这个@annakata。它会杀死telerik控制。还有其他方法吗?这是asp.net webforms问题的症结所在-该死的东西超出了它的界限,你必须按它的方式做任何事情,或者根本不按它的方式做。我建议您将所有这些都封装在updatepanel中,我知道没有其他方法可以操作页面的一部分并维护asp.net视图模型。