为什么 Jquery 只影响第一个 div 元素? [复制]

2023-11-27

我正在使用“替换”函数来删除 div 中的所有非数字值。

看来 Jquery 替换只影响第一个元素。

这是我的 Jquery:

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

HTML 代码:

<a id="comment1" href="#"> c2fđf011. </a>
<a id="comment1" href="#"> c20ff113. </a>
<a id="comment1" href="#"> c201gf76341. </a>

Result:

2011 年 c20ff113。 c201gf76341。

我想要的结果是:

2011 20113 20176341


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

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

HTML

<a class="comment1" href="#"> c2fđf011. </a> 
<a class="comment1" href="#">c20ff113. </a> 
<a class="comment1" href="#"> c201gf76341. </a>

顺便说一句,你的 ID 是这样的吗:-

<a id="comment1" href="#"> c2fđf011. </a> 
<a id="comment2" href="#">c20ff113. </a> 
<a id="comment3" href="#"> c201gf76341. </a>

从属性选择器开始会对您有所帮助(但实际上会减慢您的速度,因为这是一个属性选择器并且失去了使用 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, ''));
});

Demo

道德:ID 必须是唯一的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Jquery 只影响第一个 div 元素? [复制] 的相关文章

随机推荐