いつもありがとうございます。
1から10の番号を持つリンクを生成し、クリックするとその番号を表示するだけの関数を書いています。1つの関数で完結するように書ける方法があればご教示下さいますよう、お願い申し上げます(あとで出そうと思うのですがページリンクの前処理のようなものを想定しています)。
ブラウザはchrome バージョン 43.0.2357.130 (64-bit)です。
lang
1 2現状の方法 3<html> 4<head> 5<script type="text/javascript"> 6// グローバル変数val 7var val= 1; 8window.onload = test; 9function test() { 10 console.log(val); 11 var out = ''; 12 for (var i=1; i<=10; i++) { 13 out += "<a href='#' val='"+i+"' onclick='test2(this);return false;'>"+i+"/"+"</a>"; 14 } 15 document.getElementById("result").innerHTML = out; 16} 17function test2(e) { 18 // グローバル変数valの値を変更 19 val = e.getAttribute('val'); 20 // 関数testを再実行 21 test(); 22} 23</script> 24<body> 25<div id="result"></div> 26</body> 27</html> 28 29本来は下記のように1つの関数だけでできないかと思案中。しかしUncaught TypeError: e.getAttribute is not a functionというエラーになる。 30 31失敗例: 32function test(e) { 33 var val = e.getAttribute('val') || 1; 34 console.log(val); 35 var out = ""; 36 for (var i=1; i<=10; i++) { 37 out += "<a href='#' val='"+i+"' onclick='test(this);return false;'>"+i+"/"+"</a>"; 38 } 39 document.getElementById("result").innerHTML = out; 40} 41 42~
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/11 13:33