使用jQuery选中HTML元素后删除部分内容,克隆TR多余元素如何移除
问题解答
报错原因
- jQuery选择返回的是类数组结构的封装对象,内部的数字下标对应匹配到的DOM元素索引,不属于普通对象属性,不能用
delete语法操作,delete仅适用于删除原生JS对象的自定义属性,DOM元素的移除需要调用专门的jQuery方法。 - 你克隆出多余元素的核心原因是选择器写法错误:
$('.duplicateTR :first-child')中间带空格,属于后代选择器规则,会匹配.duplicateTR节点下所有层级的第一个子元素,而不是你预期的tbody下的第一个tr元素,所以克隆时会把大量td元素也一起操作,生成多余内容。
正确克隆单条tr的实现代码
你要实现克隆tbody下第一个tr并追加到tbody末尾,直接使用以下代码即可,不会生成多余元素:
// 选中.duplicateTR的第一个直接子tr,克隆后追加到.duplicateTR的末尾 $('.duplicateTR > tr:first-child').clone().appendTo('.duplicateTR');
多余元素的删除方法
如果已经生成了多余的tr元素,可以通过索引筛选后删除,比如要删除下标为1的tr(索引从0开始计数),写法如下:
// 方法1:直接筛选目标元素删除 $('.duplicateTR > tr').eq(1).remove(); // 方法2:从你已获取的element对象中取出对应元素删除 $(element[1]).remove();
内容的提问来源于stack exchange,提问作者BRABO
相关产品推荐
相关产品推荐

