Randy C
Randy C

Reputation: 47

How to access text in all instances of a certainclass with a span inside of it?

I have a rate box on my site that appears beneath an article, and then again that same rate box appears on comments people leave regarding the article. So the rate box appears multiple times on the page. I'm trying to change the text that appears within that rate box, but infortunately I don't have server access on the type of site I have. So I need to do it with scripting.

The small script I'm using now works, but it's only working for the very first rate box. I need to change the text in each of them however. I'm trying to change the existing text that says "Rate" into "Like".

.SUI-RateBox is the div class, and the text I need to change sits in a span within that class.

The code that I have that works on just the first instance is this:

<script>
  $(".SUI-RateBox span:contains('Rate')").html("Like");
</script>

How can I make this happen, but to all of the rate boxes. The dom structure is at the below link.

http://www.spruzstuff.spruz.com/pt/Element-Background-Image/wiki.htm

Upvotes: 0

Views: 52

Answers (2)

woodykiddy
woodykiddy

Reputation: 6455

Alternatively, I guess you could also try .each() to iterate through each of span tags within div.SUI-RateBox and check text value one after another.

$(document).ready(function () {
    $("*.SUI-RateBox").each(function(){
        var sp = $(this).children("span");
        if(sp.text() == 'Rate')
            sp.text('like');            
    });
});
​

http://jsfiddle.net/cZMFC/1/

Also check out jQuery .each() API

Upvotes: 0

Ian
Ian

Reputation: 50905

I'm not sure why you're using # (nevermind, you changed your question's details), but try this:

<script>
   $(".SUI-RateBox").find("span:contains('Rate')").html("Like");
</script>

http://jsfiddle.net/EhPP7/

Upvotes: 1

Related Questions