Why does Jquery only affect the first div element?

Total Post:96

Points:676

JQuery 
 3786  View(s)
Ratings:
Rate this:
Hi Expert, 

I am using the "replace" function to remove all non-numeric values in a div.

It seems Jquery replace only affects the first element.

Here is my Jquery:

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

HTML Code:

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

Result:

2011 c20ff113. c201gf76341.

The result I want is:

2011 20113 20176341

Please help,
Thanks in advance. 

  1. Re: Why does Jquery only affect the first div element?

    Hi Expert,

    You have duplicate ids, Which is invalid and also jquery ID selector will return only the first one that appears in DOM. Change it to class and see it working:

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

    HTML

    <a class="comment1" href="#"> c2fdf011. </a> 
    <a class="comment1" href="#">c20ff113. </a> 
    <a class="comment1" href="#"> c201gf76341. </a>
    By the way had your id been like this:-

    <a id="comment1" href="#"> c2fdf011. </a> 
    <a id="comment2" href="#">c20ff113. </a> 
    <a id="comment3" href="#"> c201gf76341. </a>
    Starts with selector will help you.

    $('[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, ''));
    });

      Modified On Mar-30-2018 01:41:11 AM

Answer

Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.