jquery 如何删除td具有特定data-attr值树

7cwmlq89  于 12个月前  发布在  jQuery
关注(0)|答案(1)|浏览(123)

我试图删除一个tr从DOM后,其中trtd有一个特定的data-value值,
这就是HTML:

<tr>
    <td data-value="1">First</td>
</tr>
<tr>
    <td data-value="2">Second</td>
</tr>
<tr>
    <td data-value="3">Third</td>
</tr>
......

字符串
我的博客JavaScript:

success: function (data) {          
            var identity = data.val; // gives me the number 2
            // find td which has data-value of 2 and remove the corresponding tr of it from DOM 
            $('td[data-value=identity]').closest('tr').remove(); // does not work       
        },


我如何才能做到这一点?

41zrol4v

41zrol4v1#

我建议您 * 非常具体地说明其中包含"td“标记的表 *。

$('td[data-value="'+ identity +'"]').closest('tr').remove();

字符串
上面的代码,这是回答了评论将工作良好,只有你:

  • 如果在HTML DOM中有一个表,该表的“tr”标记作为其上具有data-value ='identity'的“td”标记的父元素。
  • 如果HTMLDOM上有多个表,则此代码将在找到具有data-value ='identity'属性的'td'标记时,从DOM内的开始/第一个'element'开始检查,它将删除父“tr”元素,而不管DOM中是否有多个表,或者您希望从表2中删除“tr”标记,但它按照上述方法从表1中删除了“tr”标记代码.

如果您希望定位表中的任何标记(因为在将来的开发中,同一页面上可能会有多个表),那么在jQuery选择器中指定表名并根据需要遍历到特定的子元素总是一个不错的做法。

  • 您可以将上述代码临时编写为 *,
$('#specific-table-name tbody td[data-value="'+ identity +'"]').closest('tr').remove();

  • 此代码将首先在整个DOM中查找表名,然后遍历到该表的'tbody'标记,并搜索具有data-value=“identity”->的'td'元素,然后删除最接近的'tr'。*
    注意:如果要删除多个data-value=“identity”,请使用.each/.map方法对表进行迭代以获得所需结果。

相关问题