元素上的jQuery remove()不会隐藏已用空间

时间:2009-10-19 13:29:37

标签: javascript jquery

我正在使用remove()删除元素(<li>设置为display: inline;,尽管display: block;}似乎存在同样的问题,而元素从页面中删除它占用的空间不是。

这是标准行为吗?我应该使用其他方法吗? <li>包含一个表单字段,因此我希望理想情况下不会将此表单字段发送到服务器 - 因此使用remove()代替hide()

2 个答案:

答案 0 :(得分:4)

您遇到的不是标准行为。从DOM中删除元素时,也应删除占用的空间

答案 1 :(得分:2)

这可能是其中一个原因。元素后面可能有break标记。您可能只隐藏/删除元素,但仍会保留中断标记,这会导致空白空间。

例如:

<div id="one">Blah Blah</div>
<br/>
<div id="two">Blah Blah</div>
<br/>
<div id="three">Blah Blah</div>
<br/>
<div id="four">Blah Blah</div>

如果隐藏/删除div id“3”,将会有3个不必要的中断标记。

想象一下这样一个很长的列表,它是用你的代码和隐藏的20个元素生成的,然后会有20个break标记创建空块。

要解决此问题,请向所有这些div添加一个类,并为style属性'padding'