2020.10.04

jQuery

jQueryのtextメソッド・htmlメソッドで要素を取得または変更

デモページはこちら

jQueryのtextメソッドとhtmlメソッドで要素を取得または変更します。textメソッドとhtmlメソッドは機能が似ていますが細かい部分で異なります。

以下のhtmlの構造でテストします。liタグ内のspanタグはCSSで太字を適用しています。

<ul>
	<li>HTML・CSS</li>
	<li><span>Sass</span></li>
	<li>JavaScript</li>
</ul>
<p class="title">最初の要素を変更</p>
<input type="button" class="btn01" value="text">
<input type="button" class="btn02" value="html"><br><br>
<p class="title">2番目の要素を変更</p>
<input type="button" class="btn03" value="text">
<input type="button" class="btn04" value="html"><br><br>
<p class="title">最後の要素を変更</p>
<input type="button" class="btn05" value="text">
<input type="button" class="btn06" value="html"><br><br>
<input type="button" class="btn07" value="リロードしてリセット">

まず要素の取得です。対象の要素をtextメソッドとhtmlメソッドで取得して、それぞれconsole.logで出力します。対象の要素が複数ある場合、textメソッドはresult01のように全てのテキストを取得します。それに対しhtmlメソッドはresult02のように最初の1つのみ取得します。対象の要素にhtmlタグが含まれている場合、textメソッドはresult03のようにhtmlタグを無視してテキスト部分のみを取得します。それに対しhtmlメソッドはresult04のようにhtmlタグも含めて取得します。

$(function() {
	var result01 = $('ul li').text();
	var result02 = $('ul li').html();
	var result03 = $('ul li:nth-child(2)').text();
	var result04 = $('ul li:nth-child(2)').html();

	console.log(result01);
	console.log(result02);
	console.log(result03);
	console.log(result04);
});

//result01
HTML・CSSSassJavaScript
//result02
HTML・CSS
//result03
Sass
//result04
<span>Sass</span>

次に要素の変更です。最初の要素の変更はテキストのみの変更です。textメソッドとhtmlメソッドは同じ動作になります。
2番目の要素の変更は変更前の要素にhtmlタグが含まれますが、htmlタグとテキストはまとめて変更されます。こちらもtextメソッドとhtmlメソッドは同じ動作になります。
最後の要素の変更は変更後の要素にhtmlタグが含まれますが、textメソッドはhtmlタグを文字列として扱います。結果htmlメソッドのみ、htmlタグを反映した変更が可能です。

$(function() {
	$('.btn01').on('click', function() {
		$('ul').children('li:first').text('jQuery');
	});
	$('.btn02').on('click', function() {
		$('ul').children('li:first').html('jQuery');
	});
	$('.btn03').on('click', function() {
		$('ul').children('li:nth-child(2)').text('jQuery');
	});
	$('.btn04').on('click', function() {
		$('ul').children('li:nth-child(2)').html('jQuery');
	});
	$('.btn05').on('click', function() {
		$('ul').children('li:last').text('<span>jQuery</span>');
	});
	$('.btn06').on('click', function() {
		$('ul').children('li:last').html('<span>jQuery</span>');
	});
	$('.btn07').on('click', function() {
		location.reload();
	});
});

関連記事

2020.09.21

jQuery

jQueryで兄弟要素を取得(next・nextAll・prev・prevAll・siblings)

デモページはこちら jQueryで兄弟要素(同階層の要素)を取得するメソッドのまとめです。対象要素の直後の要素を取得するnext、対象要素の直後以降の要素を全て…

2020.09.22

jQuery

jQueryで親要素を取得(parent・parents・closest)

デモページはこちら jQueryで親要素(親要素の親要素である先祖要素を含む)を取得するメソッドのまとめです。対象要素の親要素を取得するparent、対象要素の…

2020.10.09

jQuery

jQueryのindexメソッドで要素の順番を取得、eqメソッドで要素の順番を指定

デモページはこちら jQueryのindexメソッドで要素の順番を取得、eqメソッドで要素の順番を指定してタブ切り替えを実装します。 以下のhtmlの構造でテス…

2021.01.30

jQuery

ヘッダー固定時のページ内リンクスムーススクロール

デモページはこちら ページ内リンクへの移動をスムーススクロールで実装します。ヘッダーは上部に固定しています。以下のhtml構造でテストします。 ページ内リンクの…

2020.09.09

jQuery

jQueryのCDN読み込み

コンテンツ・デリバリー・ネットワーク(CDN)は、アクセス元から一番近くのキャッシュサーバーへ接続してファイルが提供される仕組みです。jQueryのCDNはjQ…

上に戻る