《jQuery》.data( 名前 , 値 );・データを取り出す
変数 =《jQuery》.data( 名前 );引数に、取り出すデータの名前だけを指定するとその値が得られます。名前と、設定する値の2つを用意すると、その値が指定の名前で保管されます。こうして保管されたデータは、Webページを離れるまで保持され続け、いつでも利用することができます。
var arr = $('#message').data('messages');
if (arr == null) arr = new Array();そして、配列の「push」メソッドを呼び出して、配列にテキストを追加し、それから'messages'と'counter'の2つのデータを更新します。$('#message').data('messages',arr).data('counter',0);表示メッセージをクリックした時の処理は、doChangeで行っています。これも、まずは'messages'と'counter'のそれぞれのデータを変数に取り出します。var arr = $('#message').data('messages');
var counter = $('#message').data('counter');続いて、counterの値を1増やし(配列の最後まできていたらまたゼロに戻り)、表示するメッセージの番号を設定します。そして、'messages'の配列からcounterの番号のテキストを取り出してメッセージを表示します。$('#message').text(arr[counter]).data('counter',counter);いずれも、メソッドチェーンを使って変更の処理を一括して行うようにしています。実際にやってみるとわかりますが、保管されたデータは、ページを表示している限り、ずっとオブジェクト内に保持され続けていることがわかるでしょう。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">
<script src="jquery-1.4.2.min.js"></script>
<script type="text/javascript">
<!--
function doAction(){
var arr = $('#message').data('messages');
if (arr == null) arr = new Array();
var str = $('#text1').val();
arr.push(str);
$('#message').data('messages',arr).data('counter',0);
}
function doChange(){
var arr = $('#message').data('messages');
var counter = $('#message').data('counter');
counter++;
if (counter == arr.length) counter = 0;
$('#message').text(arr[counter]).data('counter',counter);
}
//-->
</script>
</head>
<body>
<H1>TEST.</H1>
<div id="message" onclick="doChange();">テキストを入力:</div>
<input type="text" id="text1">
<input type="button" onclick="doAction();" value="Click">
</body>
</html>
| << 前へ |