このHTMLボタンがあります:
<button id="myButton" onClick="lock(); toggleText(this.id);">Lock</button>
そして、これは私のtoggleText
JavaScript関数です:
function toggleText(button_id)
{
if (document.getElementById('button_id').text == "Lock")
{
document.getElementById('button_id').text = "Unlock";
}
else
{
document.getElementById('button_id').text = "Lock";
}
}
私の知る限り、ボタンテキスト(<button id="myButton">Lock</button>
)は、リンクテキストと同じです
(<a href="#">Lock</a>
)。したがって、ボタンであるという事実は重要ではありません。ただし、ボタンのテキストにアクセスして変更することはできません。
私は試した ('button_id')
、(button_id)
、== "Lock"
、== 'Lock'
、しかし何も機能しません。
値ではなくボタンテキストまたはリンクテキストにアクセスして変更するにはどうすればよいですか
変化する .text
から.textContent
テキストコンテンツを取得/設定します。
または、単一のテキストノードを扱っているため、.firstChild.data
同じ方法で。
また、変数を賢明に使用し、getElementById
の結果をキャッシュすることでコードの削減と冗長なDOM選択を排除しましょう。
function toggleText(button_id)
{
var el = document.getElementById(button_id);
if (el.firstChild.data == "Lock")
{
el.firstChild.data = "Unlock";
}
else
{
el.firstChild.data = "Lock";
}
}
または、このようにさらにコンパクトに:
function toggleText(button_id) {
var text = document.getElementById(button_id).firstChild;
text.data = text.data == "Lock" ? "Unlock" : "Lock";
}
document.getElementById(button_id).innerHTML = 'Lock';
次を使用できます。
document.getElementById(button_id).innerText = 'Your text here';
HTML形式を使用する場合は、代わりにinnerHTML
プロパティを使用します。
引用を削除します。テキストの代わりにinnerTextを使用します
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";
}
}