Javascript 第二次单击时未追加输入
我正在创建一个简单的树结构,它将输入字段作为子字段保存。每个子项由一个输入字段和两个按钮组成。一个按钮用于为输入添加子节点,另一个按钮用于删除节点。我的代码显示在下面的代码片段中,它没有按预期工作。问题是:我不能添加多个孩子,只能添加一个孩子Javascript 第二次单击时未追加输入,javascript,jquery,html,event-delegation,Javascript,Jquery,Html,Event Delegation,我正在创建一个简单的树结构,它将输入字段作为子字段保存。每个子项由一个输入字段和两个按钮组成。一个按钮用于为输入添加子节点,另一个按钮用于删除节点。我的代码显示在下面的代码片段中,它没有按预期工作。问题是:我不能添加多个孩子,只能添加一个孩子 $(“#main”).on('click','add',function(){ var$td=$(this.parent(); 变量$td1=$(''{ html:“添加或删除” }); console.log($td.children('table')
$(“#main”).on('click','add',function(){
var$td=$(this.parent();
变量$td1=$(''{
html:“添加或删除”
});
console.log($td.children('table').length);
if($td.children('table')。长度)
$td.children('table')。children('tr')。append($td1);
其他的
$td.追加($(''){
html:$(''){
html:$td1
})
}))
});代码>
添加
去除
所有现代浏览器上的浏览器解析器(AFAIK?!)添加TBODY
元素。有关更多详细信息,请参阅
在您的例子中,这将使$td.children('table').children('tr')
返回空的匹配集,因为children()
只针对直系后代(一个级别)
您可以改为使用find()
方法,匹配任何后代:
$td.children('table').find('tr').append($td1);
浏览器解析器添加一个tbody
,因此返回空的匹配集:$td.children('table')。children('tr')
。使用find()
代替$td.children('table')。find('tr')
@A.Wolff:是的,你是对的,在添加children('tbody')
@A.Wolff:$td.children('table')。find('tr')
这会更好,在添加eq(0)
以避免嵌套tr
。请将其添加为答案。。。。。