在jQuery UI对话框中显示隐藏的html

时间:2011-01-27 12:22:28

标签: jquery html css jquery-ui jquery-ui-dialog

我正在使用jQuery UI的Dialog。为了非常好地将窗口包裹在我的内容周围,我必须首先在2个空嵌套div(<div><div></div></div>)上加载对话框。然后,在打开Dialog后,我用对话框填充Dialog。我花了很多时间......这不是这个问题的关键所在。请不要建议替代这种机制。

我的问题只是我需要在网页中显示html,如下所示:

<div id="mydialog">
  <form>
    <label for="name">My name:</label>
    <input type="text" id="name" name="name"/>
  </form>
</div>

但是,我想在网页上隐藏上面的html。所以我将css设置为display: none;。然后,我在对话框的内部div处执行。append($('#mydialog')).children().css('display', 'block');

我的问题是......如何从网页中删除html?通过执行jQuery追加,我不是在制作完整的副本吗?我遇到了性能问题因为我有很多这些问题。而不是.append(),我应该做$('#mydialog').moveTo('#innerDivOfDialog');之类的事情吗?我应该对原始隐藏的html进行$('#mydialog').removeFromWebpage();吗?是否有一个jQuery方法执行removeFromWebpage()?这里有什么正确的机制?

2 个答案:

答案 0 :(得分:0)

您可以从DOM中删除这些元素(不是静态的HTML,一旦客户端收到它,但这实际上只是您所谓的事情的问题),您只需要调用{{1}移动项目之前,将其附加到您想要的位置。

.detach()

答案 1 :(得分:0)

来自jQuery append docs

  

我们还可以在页面上选择一个元素并将其插入另一个元素:

$('.container').append($('h2'));
  

如果以这种方式选择的元素插入其他地方,它将被移动到目标

所以,它正在被移动,而不是复制。

如果您仍然对移除感兴趣,请参阅jQuery remove