为什么Jquery只影响第一个div元素?

Hai*_*ien 10 html javascript jquery

我正在使用"替换"功能删除div中的所有非数字值.

似乎Jquery替换只影响第一个元素.

这是我的Jquery:

$('#comment').each(function() {
    var thz = $(this);
    var repl = thz.html(thz.html().replace(/\D+/g, ''));
});
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<a id="comment1" href="#"> c2f?f011. </a>
<a id="comment1" href="#"> c20ff113. </a>
<a id="comment1" href="#"> c201gf76341. </a>
Run Code Online (Sandbox Code Playgroud)

结果:

2011 c20ff113.c201gf76341.

我想要的结果是:

2011 20113 20176341

PSL*_*PSL 30

你有重复的id,这是无效的,还有jQuery ID选择器(或者内部jQuery使用的任何其他id选择器,如document.getElementById,因为带有id的元素被大多数浏览器编入索引并且意味着是唯一的)将只返回第一个出现在DOM中.将其更改为类并查看它是否正常工作:

$('.comment').each(function() { 
     var thz =  $(this); var repl =
     thz.html(thz.html().replace(/\D+/g, '')); 
});
Run Code Online (Sandbox Code Playgroud)

HTML

<a class="comment1" href="#"> c2f?f011. </a> 
<a class="comment1" href="#">c20ff113. </a> 
<a class="comment1" href="#"> c201gf76341. </a>
Run Code Online (Sandbox Code Playgroud)

顺便问一下你的身份是这样的: -

<a id="comment1" href="#"> c2f?f011. </a> 
<a id="comment2" href="#">c20ff113. </a> 
<a id="comment3" href="#"> c201gf76341. </a>
Run Code Online (Sandbox Code Playgroud)

从属性选择器开始将帮助你(但从字面上减慢你,因为这是一个属性选择器,并失去使用ID的优势).

$('[id^=comment]').each(function() { // While using this better give a container context $('[id^=comment]', 'container').each(function...
    var thz = $(this);
    var repl = thz.html(thz.html().replace(/\D+/g, ''));
});
Run Code Online (Sandbox Code Playgroud)

演示

道德:ID必须是唯一的


Sus*_* -- 17

HTML页面中的ID应该是唯一的

这就是它仅针对找到的元素的第一个实例的原因.

更换用类元素,而不是

$('.comment').each(function() {
       // Your code
});
Run Code Online (Sandbox Code Playgroud)


Von*_*itz 8

$('.comment').each(function() { var thz = $(this); var repl = thz.html(thz.html().replace(/\D+/g, '')); });
Run Code Online (Sandbox Code Playgroud)

更换UR元素编号comment的一类comment.

如果在元素上多次使用ID,则选择器将仅选择具有该ID的第一个元素.

但是当你使用类时,选择器将选择具有该类的所有元素.