入力フィールドを子として保持する単純なツリー構造を作成しています。各子は、1つの入力フィールドと2つのボタンで構成されています。 1つのボタンは、入力に子を追加するためのボタンと、ノードを削除するためのボタンです。私のコードは下のスニペットに示されており、期待通りに機能しません。問題は次のようなことです。複数の子供を追加することはできません。子供が1人しか追加されません。すべての最新ブラウザ(私の知る限り?!)の2回目のクリックで入力が追加されない
$("#main").on('click', '.add', function() {
var $td = $(this).parent();
var $td1 = $('<td>', {
html: '<input /> <button class="add"> Add </button> <button class="remove"> Remove </button>'
});
console.log($td.children('table').length);
if ($td.children('table').length)
$td.children('table').children('tr').append($td1);
else
$td.append($('<table>', {
html: $('<tr>', {
html: $td1
})
}))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="main" style="width:100%;text-align:center">
<tr>
<td>
<input type="text" />
<button class="add">
Add
</button>
<button class="remove">
Remove
</button>
</td>
</tr>
</table>
を:' $ td.children(「テーブル」)を子ども(」 tr ') '。 find( 'tr') ' –
@A.Wolff:あなたは正しいです、' children( 'tbody') 'を追加した後に動作します' –
@ A.wolff: '$ td.children( 'table')。find( 'tr')'これははるかに良くなり、追加する間に 'eq(0)'を使ってネストした 'tr'を避けることができます。回答として追加してください..... –