substitua o texto âncora por jquery

86

quero substituir o texto de uma âncora html:

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

agora eu quero substituir o texto 'clique para ir para casa'

eu tentei isso:

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

mas tudo me dá nulo ou uma string vazia

Michel
fonte

Respostas:

141

Tentar

$("#link1").text()

para acessar o texto dentro do seu elemento. O # indica que você está pesquisando por id. Você não está procurando um elemento filho, então não precisa de filhos (). Em vez disso, você deseja acessar o texto dentro do elemento que sua função jQuery retorna.

Larry Lustig
fonte
1
Obrigado. Fiquei aliviado por ter a resposta e muito estúpido ... por tentar todas as afirmações diferentes, mas esquecendo o sinal # ...
Michel
62

Para fazer referência a um elemento por id, você precisa usar o #qualificador.

Tentar:

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

Para substituí-lo, você pode usar:

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

A .html()função também funcionaria neste caso.

zumbat
fonte
18
$('#link1').text("Replacement text");

O .text()método descarta o texto que você passa para o conteúdo do elemento. Ao contrário de usar .html(), .text()ignora implicitamente qualquer incorporado HTML marcação, por isso, se você precisa para incorporar alguns em linha <span>, <i>ou quaisquer outros elementos semelhantes, o uso .html()em seu lugar.

Pontudo
fonte
4

Tente isso, no caso de id

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

OU isso, no caso de aula

$(".YourClassName").text('Your text');
Muhammad Attiq
fonte
-1
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());
    });
}
  • Primeiro código encontre uma substituição de título t.html(t.html()
  • O segundo código substitui um texto t.children(":first")

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

alpc
fonte
1
Embora o código em sua resposta possa funcionar, você deve se esforçar para criar uma resposta excelente que explique por que e como funciona.
Ian Stapleton Cordasco