2012-08-02 110 views
0

我有一个窗体,有几个输入字段分布在整个标记中。删除所有元素 html,但输入

我想要做的是删除一切,但从它的输入。

所以这个:

<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/

回答

2

输入是表单中子女的子女,因此删除第一名子女将删除输入,因为他们自己是子女的子女等等。

尝试将所有输入到窗体根级别,然后删除一切,但输入:

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

FIDDLE

2

您可以将所有输入存储在变量中,然后删除形式的一切。之后,你可以把后面的输入:

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

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

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

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

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

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

demo