删除所有元素\ html但输入

时间:2012-08-02 13:27:43

标签: jquery

我有一个表单,其中有几个输入字段遍布整个标记。

我想要做的是删除除了输入之外的所有内容。

所以这个:

<form>
<table><tr><td>more info here<input type="submit" name="registerForEvent" id="registerForEvent" value="Register Online" class="Button" /></td></tr>
<tr><td>table goes here blah blah....
<table><tr><td></td><td>  test text here:<input type="hidden" name="test"></td></tr></table>
</td></tr>
</table>
</form>

变成这个

<form>
<input type="submit" name="registerForEvent" id="registerForEvent" value="Register Online" class="Button" />
<input type="hidden" name="test">
</form>

我试过

$('form:not(input)').remove(); 

无济于事

http://jsfiddle.net/X5fFC/

4 个答案:

答案 0 :(得分:2)

输入是表格中孩子的孩子,所以删除第一个孩子将删除输入,因为他们自己是这些孩子的孩子等?

尝试将所有输入移动到表单根级别,然后删除除输入之外的所有内容:

$('input', 'form').appendTo('form');
$('*','form').not('input').remove(); ​

FIDDLE

答案 1 :(得分:2)

您可以将所有输入存储在变量中,然后删除表单中的所有内容。之后你可以放回输入:

var inputs = $("form input");
$("form").empty().append(inputs);

http://jsfiddle.net/X5fFC/6/

答案 2 :(得分:2)

$('form').html($('form input'));

demo

答案 3 :(得分:0)

 $('form:not(input)').remove(); 

将删除子input元素。你可以尝试:

 var input = $('form input');
 $('form').empty().append(input);​