JavaScript の変更ボタンのテキスト
- JavaScript でロード時にボタンテキストを変更
- マウスオーバー時の JavaScript 変更ボタンテキスト
- クリック時の JavaScript 変更ボタンのテキスト
- jQuery を使用した JavaScript のボタンテキストの変更
サンプルコードを使用して、JavaScript の変更ボタンのテキストについて学習することを目的としています。ロード、クリック、マウスオーバーでボタンのテキストがどのように変化するかを示しています。また、ボタンのテキストを変更するための jQuery の使用例も示しています。
JavaScript でロード時にボタンテキストを変更
input[type='button']
や input[type='submit']
のような HTML <input>
要素がある場合は、次の方法でボタンのテキストを変更できます。
HTML コード:
<input id="btn" type="button" value="Update">
<input id="btnSubmit" type="submit" value="Update">
JavaScript コード:
document.querySelector('#btn').value = 'Remove';
document.querySelector('#btnSubmit').value = 'Remove';
以下のメソッドのいずれかを使用して、HTML<button>
要素のボタンテキストを変更することもできます(指定されたメソッドは、.innerHTML
、.innerText
、および .textContent
です)。
HTML コード:
<button id="btn" type="button" value="Show Result">Show Result</button>
<button id="btnSubmit" type="submit" value="Submit Result">Submit Result</button>
JavaScript コード:
// querySelector selects the element whose id's value is btn
document.querySelector('#btn').innerHTML = 'Hide Result';
document.querySelector('#btn').innerText = 'Hide Result';
document.querySelector('#btn').textContent = 'Hide Result';
// querySelector selects the element whose id's value is btnSubmit
document.querySelector('#btnSubmit').innerHTML = 'Hide Result';
document.querySelector('#btnSubmit').innerText = 'Hide Result';
document.querySelector('#btnSubmit').textContent = 'Hide Result';
HTML の <input>
要素に .innerHTML
、.innerText
、および .textContent
を使用できますか?いいえ。理由は、<input>
が空の要素であるのに対し、<button>
はコンテナタグであり、.innerHTML
、.innerText
、および .textContent
プロパティを持っているためです。
目標は .innerHTML
、.innerText
、および .textContent
を使用することで達成されますが、特定の点を念頭に置く必要があります。
- JavaScript
.innerHTML
を使用しているため、クロスサイトセキュリティ攻撃に直面する必要がある場合があります。 - JavaScript
.innerText
は、レイアウトシステムに関する詳細が必要なため、パフォーマンスが低下します。 - JavaScript
.textContent
は、.innerHTML
のようなセキュリティ上の懸念を引き起こしません。また、.innerText
のような HTML コンテンツを解析する必要がないため、最高のパフォーマンスが得られます。
今、あなたはそれらの間の違いを知っています。したがって、プロジェクトの要件に合ったこれらの方法のいずれかを選択してください。あなたはそれらについてもっと読むことができますここ。
マウスオーバー時の JavaScript 変更ボタンテキスト
HTML コード:
<button class="button">Hide Result</button>
CSS コード:
.button {
background-color: red;
}
.button:hover {
background-color: green;
}
JavaScript コード:
let btn = document.querySelector('.button');
btn.addEventListener('mouseover', function() {
this.textContent = 'Show Result!';
})
btn.addEventListener('mouseout', function() {
this.textContent = 'Hide Result';
})
上記のコードは、マウスポインタがボタンにカーソルを合わせるとボタンのテキストと色が変化する出力を表示するはずです。
querySelector()
は、定義されたセレクターに一致する最初の要素を出力します。addEventListener()
は、指定された要素にイベントハンドラーをアタッチし、特定のイベントをトリガーするためのメソッドを設定します。
mouseover
イベントと mouseout
イベントを使用し、.textContent
はボタンのテキストを変更します。
クリック時の JavaScript 変更ボタンのテキスト
HTML コード:
<input onclick="changeText()" type="button" value="Hide Result" id="btn">
JavaScript コード:
function changeText() {
let element = document.getElementById('btn');
if (element.value == 'Hide Result')
element.value = 'Show Result';
else
element.value = 'Hide Result';
}
ボタンをクリックすると changeText()
が実行されます。このメソッドは、getElementById()
を使用して、指定されたセレクターに一致する最初の要素を取得します。次に、要素の値をチェックし、if-else
ステートメントに従って変更します。
jQuery を使用した JavaScript のボタンテキストの変更
HTML コード:
<!DOCTYPE>
<html>
<head>
<title>Change Text</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<button id="button" onclick="changeText()">Hide Result</button>
</body>
</html>
JavaScript コード:
function changeText() {
$('#button').html('Show Result');
$('#button').css('background-color', 'green');
}
上記のコードは、ボタンをクリックすると、ボタンのテキストを結果を非表示
から結果を表示
に変更し、ボタンの色も緑色に変更します。
.html()
は選択した要素のコンテンツを設定し、.css()
は background-color
を緑に変更します。.html()
は HTML<button>
要素に使用されることを忘れないでください。
これらの機能の詳細については、このリンクを確認してください。
HTML <input>
要素がある場合、jQuery を使用してテキストを変更するにはどうすればよいか考えているかもしれません。次のコードはあなたが理解するためのものです。
HTML コード:
<!DOCTYPE>
<html>
<head>
<title>Change Text</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<input type="button" id="btnShow" value="Show" onclick="changeText()">
</body>
</html>
JavaScript コード:
function changeText() {
$('#btnShow').attr('value', 'Hide'); // versions older than 1.6
$('#btnShow').prop('value', 'Hide'); // versions newer than 1.6
$('#btnShow').css('background-color', 'yellow');
}
.attr()
または prop()
(jQuery のバージョンに応じて)を使用して、HTML <input>
要素のボタンテキストを変更できます。.attr()
と .prop()
はどちらも、<input>
要素の value
属性を対象とし、2 番目のパラメーターに従ってその値を変更します。
このサンプルコードでは、2 番目のパラメーターは Hide
です。changeText()
メソッドも、.css()
関数を使用して背景色を黄色に変更します。