使用jquery删除具有给定id的所有元素

Chr*_*ris 45 javascript jquery getelementbyid

我有一个带有几个跨度的表单,id ="myid".我希望能够从DOM中删除具有此id的所有元素,我认为jQuery是最好的方法.我想出了如何使用$ .remove()方法删除此id的一个实例,只需执行以下操作:

$('#myid').remove()
Run Code Online (Sandbox Code Playgroud)

但当然这只会删除myid的第一个实例.如何迭代所有myid实例并将其全部删除?我认为jquery $ .each()方法可能就是这样,但是我无法弄清楚迭代myid所有实例的语法并将它们全部删除.

如果有一个干净的方法来使用常规JS(不使用jQuery),我也对此持开放态度.也许问题是id应该是唯一的(即你不应该有多个id ="myid"的元素)?

谢谢,

克里斯

mpe*_*pen 66

.remove()应该删除所有这些.我认为问题在于您使用的是ID.在页面上只应该有一个具有特定ID的HTML元素,因此jQuery正在优化而不是全部搜索它们.请改用一个班级.


ace*_*ace 41

所有元素都应该有唯一的ID,因此#myid不应该有多个元素

"id"是唯一标识符.每次在文档中使用此属性时,它必须具有不同的值.如果您使用此属性作为样式表的挂钩,则使用类(组元素)而不是id(用于标识一个元素)可能更合适.

无所谓,试试这个:

$("span[id=myid]").remove();
Run Code Online (Sandbox Code Playgroud)

  • 这是完美的答案。 (2认同)

Min*_*yen 14

dom元素呼叫的id是唯一的.使用class而不是(<span class='myclass'>).要删除此类的所有范围:

$('.myclass').remove()
Run Code Online (Sandbox Code Playgroud)


Per*_*rOl 8

如果要删除具有匹配ID部分的所有元素,例如:

<span id='myID_123'>
<span id='myID_456'>
<span id='myID_789'>
Run Code Online (Sandbox Code Playgroud)

试试这个:

$("span[id*=myID]").remove();
Run Code Online (Sandbox Code Playgroud)

不要忘记'*' - 这会立刻将它们全部删除 - 干杯

工作演示


Pet*_*ter 6

您应该使用a class作为多个元素,因为它id只是一个元素.要回答关于.each()语法的问题,这就是它的样子:

$('#myID').each(function() {
    $(this).remove();
});
Run Code Online (Sandbox Code Playgroud)

官方JQuery文档在这里.


小智 5

最干净的方法是使用html5选择器api,具体来说querySelectorAll().

var contentToRemove = document.querySelectorAll("#myid");
$(contentToRemove).remove(); 
Run Code Online (Sandbox Code Playgroud)

querySelectorAll()函数返回与特定id匹配的dom元素数组.将返回的数组分配给a后var,可以将其作为参数传递给jquery remove().