Ich habe diese HTML-Schaltfläche:
<button id="myButton" onClick="lock(); toggleText(this.id);">Lock</button>
Und das ist meine toggleText
JavaScript-Funktion:
function toggleText(button_id)
{
if (document.getElementById('button_id').text == "Lock")
{
document.getElementById('button_id').text = "Unlock";
}
else
{
document.getElementById('button_id').text = "Lock";
}
}
Soweit ich weiß, ist der Button-Text (<button id="myButton">Lock</button>
) genau wie jeder Link-Text
(<a href="#">Lock</a>
). Die Tatsache, dass es sich dabei um einen Button handelt, spielt keine Rolle. Ich kann jedoch nicht auf den Schaltflächentext zugreifen und ihn ändern.
Ich habe versucht ('button_id')
, (button_id)
, == "Lock"
, == 'Lock'
, aber nichts funktioniert.
Wie kann ich auf einen Schaltflächentext (keinen Wert) oder einen Linktext zugreifen und ihn ändern?
Ändern Sie .text
in .textContent
, um den Textinhalt abzurufen/festzulegen.
Oder verwenden Sie .firstChild.data
auf dieselbe Weise, da Sie nur einen einzelnen Textknoten verwenden.
Lassen Sie uns auch eine Variable sinnvoll einsetzen, genießen Sie eine gewisse Code-Reduzierung und eliminieren Sie die redundante DOM-Auswahl durch Zwischenspeichern des Ergebnisses von getElementById
.
function toggleText(button_id)
{
var el = document.getElementById(button_id);
if (el.firstChild.data == "Lock")
{
el.firstChild.data = "Unlock";
}
else
{
el.firstChild.data = "Lock";
}
}
Oder noch kompakter:
function toggleText(button_id) {
var text = document.getElementById(button_id).firstChild;
text.data = text.data == "Lock" ? "Unlock" : "Lock";
}
document.getElementById(button_id).innerHTML = 'Lock';
Sie können einfach verwenden:
document.getElementById(button_id).innerText = 'Your text here';
Wenn Sie die HTML-Formatierung verwenden möchten, verwenden Sie stattdessen die Eigenschaft innerHTML
.
Angebot entfernen und verwende innerText anstelle von text
function toggleText(button_id)
{ //-----\/ 'button_id' - > button_id
if (document.getElementById(button_id).innerText == "Lock")
{
document.getElementById(button_id).innerText = "Unlock";
}
else
{
document.getElementById(button_id).innerText = "Lock";
}
}