I have this HTML button:
<button id="myButton" onClick="lock(); toggleText(this.id);">Lock</button>
And this is my toggleText
JavaScript function:
function toggleText(button_id)
{
if (document.getElementById('button_id').text == "Lock")
{
document.getElementById('button_id').text = "Unlock";
}
else
{
document.getElementById('button_id').text = "Lock";
}
}
As far as I know, button text (<button id="myButton">Lock</button>
) is just like any link text
(<a href="#">Lock</a>
). So the fact that it's a button doesn't matter. However, I can't access the button text and change it.
I tried ('button_id')
, (button_id)
, == "Lock"
, == 'Lock'
, but nothing works.
How can I access and change a button text (not value) or a link text?
You can simply use:
document.getElementById(button_id).innerText = 'Your text here';
If you want to use HTML formatting, use the
innerHTML
property instead.Change
.text
to.textContent
to get/set the text content.Or since you're dealing with a single text node, use
.firstChild.data
in the same manner.Also, let's make sensible use of a variable, and enjoy some code reduction and eliminate redundant DOM selection by caching the result of
getElementById
.Or even more compact like this:
Remove Quote. and use innerText instead of text