我需要隐藏所有表单的内容并替换它(.find('*')。each(){$(this).hide}不起作用)我有隐藏文本节点的问题:
<form onsubmit="javascript:... ">
<!--text node --> bad
<input type="radio" name="imgvote" value="1" style="display: none;">
答案 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}}