0

マークアップ全体にいくつかの入力フィールドがあるフォームがあります。

私がやりたいのは、入力以外のすべてを削除することです。

したがって、この:

<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

4 に答える 4

2

入力はフォームの子の子であるため、最初の子を削除すると、それら自体がそれらの子の子であるため、入力が削除されますか?

すべての入力をフォーム ルート レベルに移動してから、入力以外のすべてを削除してみてください。

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

フィドル

于 2012-08-02T13:35:45.373 に答える
2

すべての入力を変数に保存してから、フォーム内のすべてを削除できます。その後、入力を元に戻すことができます:

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

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

于 2012-08-02T13:36:26.683 に答える
2

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

デモ

于 2012-08-02T13:36:53.773 に答える
0
 $('form:not(input)').remove(); 

input子要素を削除します。あなたは試すことができます:

 var input = $('form input');
 $('form').empty().append(input);​
于 2012-08-02T13:36:52.370 に答える