jQuery – テキストを取得・変更する『 text() 』

要素内にあるテキストを取得・変更する場合は「text()」を使います。

取得する場合は「text()」、変更する場合は「text(“変更後の文字列”)」を指定します。

//id=#msg内のテキストを取得します。
$("#msg").text();
//id=#msg内のテキストを「文字を変更しました。」に変更します。
$("#msg").text("文字を変更しました。");

サンプル1

jQuery – text サンプル1

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>jQuery - text サンプル1</title>
<script type="text/javascript" src="../jquery-1.2.6.min.js"></script>
<script language="JavaScript">
$(function (){
	$("#box1").click(
		function(){
			$(this).text("マウスをはずしてください。");
			$(".msg").text("クリックされました。(#box1内のテキストは「"+$(this).text()+"」)");
		}
	);
	$("#box1").hover(
		function(){
			$(this).text("クリックしてください。");
			$(".msg").text("マウスが乗っています。(#box1内のテキストは「"+$(this).text()+"」)");
		},
		function(){
			$(this).text("マウスを乗せて下さい。");
			$(".msg").text("マウスが外れました。(#box1内のテキストは「"+$(this).text()+"」)");
		}
	);
});
</script>
<style type="text/css">
#box1 {
	width: 150px;
	height: 150px;
	border: 1px solid #cccccc;
	background-color: #efefef;
}
</style>
</head>
<body>
<div id="box1">
マウスを乗せて下さい。
</div>
<p class="msg">まだ何もイベントがありません。</p>
</body>
</html>

「$(this).text()」と記述している場所があると思いますが、英語そのままの「この」という意味合いです。上記のサンプル1の$(this)は「$(“#msg”).click」の中で利用しているので「クリックされたid=msgの」という意味合いになります。thisについては少し説明がムヅカしい(自分自身がなんとなく使ってしまっている…スミマセン)ので、もし理解を深めたい方は下記サイトに、jQueryのthisに関する記事をかかれているのでそちらをご覧くださいませ…。

anything from here jQueryに学ぶJavascriptの基礎(2) this 活用──jQuery解読(17)

もうひとつサンプルを用意しました。

サンプル2

jQuery – text サンプル2

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>jQuery - text サンプル2</title>
<script type="text/javascript" src="../jquery-1.2.6.min.js"></script>
<script language="JavaScript">
$(function (){
	var cmArray = new Array("情熱や怒り","堅実や冷静","癒しや調和");
	$("html").css("font-size","2em");
	
	$("li").click(
		function(){
			var cmTxt = cmArray[$("li").index(this)];
			$(".msg").text("『 "+$(this).text()+" 』は"+cmTxt+"を表す色です。");
		}
	);
});
</script>
</head>
<body>
<p class="msg">好きな色をクリックしてください。</p>
<ul>
<li>赤</li>
<li>青</li>
<li>緑</li>
</ul>
</body>
</html>

$(this)については「$(“.msg”).text(“『 “+$(this).text()+” 』は”+cmTxt+”を表す色です。”);」の「$(this).text()」を「$(“li”).text()」に変更して動作を試すと、なるほど!となるやもしれません。

jQuery – text サンプル $("li").text()のサンプル

「$(this).text()」の場合はクリックした場所のテキストのみ表示されますが、「$(“li”).text()」に変更すると「liタグ内のテキスト」がすべて表示されます。$(this).text()は「$(“li”).clickのテキスト=クリックされたliタグのテキスト」という意味合いになり、$(“li”).text()は「HTML内すべてのliのテキスト」という意味合いになります。

thisは利用する場合が多いので、なんとなくでも意味をつかんでおきましょう。