PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, October 27, 2022

[FIXED] how remove specific text from <div> element using jQuery

 October 27, 2022     javascript, jquery, woocommerce, wordpress     No comments   

Issue

remove % and keep testing using jQuery

<div id="top_content">testing %</div> == 0$

I've tried to use this code but it didn't work

$('.top_content:contains("%: ")').each(function(){
    $(this).html($(this).html().split("%: ").join(""));
});

top content is an element inside wordpress plugin

thanks for help


Solution

The two reasons your original code didn't work is, first: because you're selecting an element incorrectly; the element has an id attribute but you're using class-based selector (.top_content); and also because you're trying to split the string of text on a character-sequence – "%: " – that isn't present in that string.

While this approach can certainly work:

$('#top_content:contains("%")').each(function() {
  $(this).html($(this).html().split(" %").join(""));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="top_content">testing %</div>

It's generally better to use the replace() method to modify text, as it replaces the string in one place, instead of having to remember to remove (with split()) and then join() them together with the desired character.

Below is an approach that uses String.prototype.replace() along with jQuery:

// selecting the element(s), and using the
// anonymous function of the text() method
// to update the text; passing in a reference
// the index of the current element in the
// jQuery collection, and a reference to the
// the current text of that element:
$('#top_content').text(function(i,old){
  // here we return the modified string, which
  // simply takes the existing string and
  // replaces the '%' character with an empty
  // string, and then removes any leading/
  // trailing white-space with
  // String.prototype.trim():
  return old.replace('%', '').trim();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="top_content">testing %</div>

Or, without jQuery:

// we need to reference the textContent of this element
// twice, once to set and once to get; therefore we
// cache a reference to the element (in order to avoid
// querying the DOM multiple times):
let topContent = document.querySelector('#top_content');

// here we set the textContent of the element to the
// value returned by using String.prototype.replace()
// to remove the '%' character and replace it with an
// empty string; and removing leading/trailing white-space
// from the string as above:
topContent.textContent = topContent.textContent.replace('%', '').trim();
<div id="top_content">testing %</div>

References:

  • JavaScript:
    • String.prototype.replace().
    • String.prototype.split().
    • String.prototype.trim().
  • jQuery:
    • text().


Answered By - David Thomas
Answer Checked By - Terry (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing