Frage Ersetzen Sie den Ankertext durch jquery


Ich möchte den Text eines HTML-Ankers ersetzen:

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

Jetzt möchte ich den Text "klicken, um nach Hause zu gehen"

Ich habe es versucht:

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

aber alles gibt mir null oder eine leere Zeichenfolge


75
2017-10-26 16:45


Ursprung


Antworten:


Versuchen

$("#link1").text()

um auf den Text in Ihrem Element zuzugreifen. Die # zeigt an, dass Sie nach ID suchen. Sie suchen kein Kindelement, Sie brauchen also keine Kinder (). Stattdessen möchten Sie auf den Text innerhalb des Elements zugreifen, das Ihre jQuery-Funktion zurückgibt.


119
2017-10-26 16:52



Um ein Element nach ID zu referenzieren, müssen Sie das # Qualifier.

Versuchen:

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

Um es zu ersetzen, könnten Sie verwenden:

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

Das .html() Funktion würde auch in diesem Fall funktionieren.


55
2017-10-26 16:49



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

Das .text() Methode löscht den Text, den Sie an den Elementinhalt übergeben. Im Gegensatz zur Verwendung .html(), .text() ignoriert implizit jedes eingebettete HTML-Markup, wenn Sie also Inline einbetten müssen <span>, <i>oder was auch immer andere ähnliche Elemente verwenden .html() stattdessen.


14
2017-10-26 16:49



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()); }); }

Erster Code finde einen Titel replace t.html (t.html ()
Zweiter Code ein Text ersetzen t.children (": first")

Beispiel <a title = "alpc" href = "#"> alpc


-1
2017-08-08 01:27