1

除了 .show()'ing 和 .hide()'ing(或 .toggle()'ing ),有没有办法“切换” .remove() 函数?

我意识到 .remove() 从字面上删除了 DOM 中的元素,所以一旦删除的元素消失了,听起来很难神奇地替换它们,但是有没有办法伪造它?

注意:它们必须从 DOM 中删除,以便屏幕阅读器忽略它们(AFAIK 屏幕阅读器不尊重 .show() 和 .hide())。

谢谢。

- - 编辑 - -

好的,所以 .detach() 可能对我有用。如果我的标记是:

<a href="#">Toggle images</a>

<p><span>Some text here</span><img src='image1.png'/><img src='image2.png'/></p>
<p><span>Some more text</span><img src='image2.png'/></p>
<p><span>Even more text</span><img src='image5.png'/><img src='image1.png'/>
  <img src='image5.png'/></p>

通过单击锚点,它将删除所有图像,再次单击将恢复。使用 .detach() 它将如何工作?

--- 编辑 #2 ---

正如 thenduks 指出的那样,屏幕阅读器实际上确实尊重display: none;这改变了我的问题。我最终得到了一个简单的切换代码。谢谢!

4

2 回答 2

4

You could try using jQuery 1.4's recent addition: detach to remove them and then re-add them later.

于 2010-09-22T17:30:19.870 回答
1

You can save the DOM element(s) to a variable to be added back again later.

Check example here.

于 2010-09-22T17:29:44.007 回答