Michel
Michel

Reputation: 23615

replace anchor text with jquery

i want to replace the text of a html anchor:

<a href="index.html" id="link1">Click to go home</a>

now i want to replace the text 'click to go home'

i've tried this:

alert($("link1").children(":first").val());
alert($("link1").children(":first").text());
alert($("link1").children(":first").html());

but it all gives me null or an empty string

Upvotes: 91

Views: 198715

Answers (5)

alpc
alpc

Reputation: 610

function liReplace(replacement) {
    $(".dropit-submenu li").each(function() {
        var t = $(this);
        t.html(t.html().replace(replacement, "*" + replacement + "*"));
        t.children(":first").html(t.children(":first").html().replace(replacement, "*" +` `replacement + "*"));
        t.children(":first").html(t.children(":first").html().replace(replacement + " ", ""));
        alert(t.children(":first").text());
    });
}
  • First code find a title replace t.html(t.html()
  • Second code a text replace t.children(":first")

Sample <a title="alpc" href="#">alpc</a>

Upvotes: -2

Muhammad Attiq
Muhammad Attiq

Reputation: 71

Try this, in case of id

$("#YourId").text('Your text');

OR this, in case of class

$(".YourClassName").text('Your text');

Upvotes: 7

Pointy
Pointy

Reputation: 413682

$('#link1').text("Replacement text");

The .text() method drops the text you pass it into the element content. Unlike using .html(), .text() implicitly ignores any embedded HTML markup, so if you need to embed some inline <span>, <i>, or whatever other similar elements, use .html() instead.

Upvotes: 19

Larry Lustig
Larry Lustig

Reputation: 50970

Try

$("#link1").text()

to access the text inside your element. The # indicates you're searching by id. You aren't looking for a child element, so you don't need children(). Instead you want to access the text inside the element your jQuery function returns.

Upvotes: 147

zombat
zombat

Reputation: 94147

To reference an element by id, you need to use the # qualifier.

Try:

alert($("#link1").text());

To replace it, you could use:

$("#link1").text('New text');

The .html() function would work in this case too.

Upvotes: 65

Related Questions