隐藏或删除文本节点

时间:2010-12-16 22:26:04

标签: javascript jquery

我需要隐藏所有表单的内容并替换它(.find('*')。each(){$(this).hide}不起作用)我有隐藏文本节点的问题:

      <form onsubmit="javascript:... ">
  <!--text node -->  bad&nbsp;
      <input type="radio" name="imgvote" value="1" style="display: none;">

1 个答案:

答案 0 :(得分:4)

我猜你正在使用$("form").children().hide(),它不会隐藏文本节点,只隐藏元素。相反,你想要:

$("form").contents().hide();

但隐藏与替换不同。要完全替换表单中的所有内容,您可以执行以下操作:

$("form").html("blah blah <input type='text'>");

先清空它,然后附加元素:

$("form").empty().append("blah blah <input type='text'>");

另一个替代方案是确保所有文本都在一个元素中很好地包装(大多数时候这在语义上更正确),例如,“bad”应该在<p>或{<label>或{ {1}}