jquery find and replace text, without element id
I'm playing around with finding and replacing text.
The only problem I'm having is finding a text string, that is not attached to an element with an ID. Otherwise, it would be easy.
I'm trying something like this:
$("*").each(function () {
$(this).html(this.html().replace('Original Text','New Text'));
});
Not working too well.
Anyone run into this before?Also, if I have several words or phrases开发者_如何转开发 to find and replace, how does that affect the speed/processing power of the user's browser? Is it a memory hog?
$("*").contents().each(function() {
if(this.nodeType == 3)
this.nodeValue = this.nodeValue.replace("old", "new");
});
Takpar, your code works too. It seems to stop a few other things from working, but only items I'm pulling dynamically. For example, when I'm using .ajax()
. Not sure why, but that's why I ran into. I'll test more.
On a related topic, Gumbo's code works:
$("*").each(function () {
if ($(this).children().length == 0) {
$(this).text($(this).text().replace('Subject:','Name:'));
}
});
The only thing I'm running into issues with is replacing text that is loaded after the page loads.
I do have some javascript functions that are displaying data from the server, but only after the page has loaded all elements. For example, a user selects a value from a dropdown that initiates an event to load a list of products from the database.
I format some of those products like this:
Granny Smith Apples
Price: x.xx per pound
Nutritional facts....
I will only want to find a replace the word "Price:", and possibly replace it with "Cost:".
But as I mentioned, that data has not been loaded yet.
Is a limit I have to live with?
why don't you simply use:
$('body').html($('body').html().replace('Original Text','New Text'));
You want the :contains()
selector. http://api.jquery.com/contains-selector/
$("*:contains('Original Text')").each(...);
$("*").each(function () {
if ($(this).children().length == 0){
$(this).html($(this).html().replace(/Old String/g, "New String"));
}});
精彩评论