2012-08-02 100 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