JavaScriptトリガ時のパラメータ転送
5088 ワード
フロントのHtmlボタンを触発して、クライアントイベントを起動する時、どのようにボタンを押して動的にこのボタンの属性を変更しますか?最初はこのボタンのidを手動で書きましたが、この方法は非常に欠陥があります.フロントのボタンがすべて動的に生成されると、このような操作はコードに迷惑をかけます.その後は立ち止まってよく考えましたが、まさかすべてこのように書くべきですか?他の方法はないですか?時々私は自分が一つの問題をとても複雑にしていることに気づいた時、私は立ち止まって考えています.自分の方向が間違っていますか?他のより良い解決策がありますか?その後、いくつかの資料を見て、ツールブックを見て、自分のやり方が本当にばかばかしくて、このすべてのものは「this」パラメータだけで解決できます.つまり、「this」オブジェクトはこのボタンのオブジェクト自体を表しています.自然に呼び出した変更の属性の関数が変わったのはこのボタンの属性です.
例えば以下のコード:
例えば以下のコード:
var num = document.getElementById('LabelTotalNum').innerText;
var tr = "";
var _str = "";
tr += '<table cellpadding="2px" cellspacing="2px">';
for (var i = 0; i < num / 6; i++) {
tr += '<tr>';
for (var j = 1; j <= 6; j++) {
_str = "Judge" + (i * 6 + j);
var aa = ans.indexOf(_str);
if (ans.indexOf(_str) >= 0)
tr += '<td class="td"><input id="Judge' + (i * 6 + j) + '" name="clickname" style = "background-color: #ff0000;" type="submit" ' + ' value="' + (i * 6 + j) + '" class="weida" title="Judge" onclick="SaveAndThen(this);return false;" /></td>';
else
tr += '<td class="td"><input id="Judge' + (i * 6 + j) + '" name="clickname" type="submit" ' + ' value="' + (i * 6 + j) + '" title="Judge" class="weida" onclick="SaveAndThen(this);return false;" /></td>';
}
tr += '</tr>';
}
tr += '</table>';
document.getElementById('DivProblem').insertAdjacentHTML("beforeEnd", tr);
このコードの中で、私のボタンはすべて動的に生成されています.以前は生成するたびに彼のIDを呼び出し関数に書いていましたが、特に面倒です.今はOclick=「SaveAndThe」でパラメータthisだけを伝達すればいいので、問題は簡単になります.だから、今後のコードの中で皆さんは注意してもいいです.thisオブジェクトはとても強いものです.彼のことをよく考えてみてください.