IE6-8 is Not Supported

eval 関数を使って要素の個数だけ変数を生成し値を格納する方法

要素の個数が決まっている場合、自分で変数を書けば済む話ですが数が未定の場合や増える予定がある場合、自動で変数を生成できれば便利だと思ったので試作。何を言ってるかいまいち分からないと思うので実例を混じえて説明します。

EX. n個の li 要素の高さを取得し変数に格納する

何個あるか分からない li 要素 の高さを取得する例。
最初に要素の個数を取得し for 文でループ、eval を使いvar listHeightn(n は個数分の数字) にそれぞれの要素の高さを格納しています。

<div id="#list">
	<ul>
		<li>...</li>
		<li>...</li>
		...
		<li>...</li>
		<li>...</li>
	</ul>
</div>
var $list = $('#list > ul > li');
var length = $list.length - 1;
for (var i = 0 ; i <= length; i++) {
	var height = $list.eq(i).height();
	eval('var listHeight' + i + '=' + height + ';');
}

eval 自体結構癖ありで実用的ではないかもしれませんが、参考までに。eval 関数についての詳しい解説は MDN を見るといいと思います。

Reference: eval – JavaScript | MDN

ads by google