だから私はjavascriptでループを実行する方法を学び、配列でそれを実行する方法を研究していました。私は配列を作成する方法を理解していますが、私がはっきりしていないのは、ループでそれを実装することを使用しています。そのため、この場合に行ったと思うような「ループ内でアレイを製造する」という例に出くわします。
私がやりたいのは、javascriptを使用して、ページ上のさまざまなdom要素のクラスを変更することです。私がやりたくないのは、同じコードを異なる数値で何度も繰り返すことです。私はすべてが正しいと思ったが、どうやら私はそうではない。これが私のコードです:
<script>
for (var i = 0; i < 11; i++) {
var storyImageSubmit + [i] = document.getElementById('story_image_' + [i]);
var realImageUpload + [i] = document.getElementById('realImageUpload' + [i]);
realImageUpload + [i].addEventListener('mouseover', over_profile_image_submit_ + [i], false);
realImageUpload + [i].addEventListener('mouseout', out_profile_image_submit_ + [i], false);
realImageUpload + [i].addEventListener('mousedown', down_profile_image_submit_ + [i], false);
realImageUpload + [i].addEventListener('mouseup', up_profile_image_submit_ + [i], false);
function over_profile_image_submit_ + [i] + () {
storyImageSubmit + [i].className = "accountSettingsBrowseSubmitHover";
}
function out_profile_image_submit_ + [i] + () {
storyImageSubmit + [i].className = "accountSettingsBrowseSubmit";
}
function down_profile_image_submit_ + [i] + () {
storyImageSubmit + [i].className = "accountSettingsBrowseSubmitDown";
}
function up_profile_image_submit_ + [i] + () {
storyImageSubmit + [i].className = "accountSettingsBrowseSubmit";
}
}
</script>
コードをどのように見せたいのか、1〜10の異なる数値で繰り返したのは、次のとおりです。
<script>
for (var i = 0; i < 11; i++) {
var storyImageSubmit1 = document.getElementById('story_image_1');
var realImageUpload1 = document.getElementById('realImageUpload1']);
realImageUpload1.addEventListener('mouseover', over_profile_image_submit_1, false);
realImageUpload1.addEventListener('mouseout', out_profile_image_submit_1, false);
realImageUpload1.addEventListener('mousedown', down_profile_image_submit_1, false);
realImageUpload1.addEventListener('mouseup', up_profile_image_submit_1, false);
function over_profile_image_submit_1() {
storyImageSubmit1.className = "accountSettingsBrowseSubmitHover";
}
function out_profile_image_submit_1() {
storyImageSubmit1.className = "accountSettingsBrowseSubmit";
}
function down_profile_image_submit_1() {
storyImageSubmit1.className = "accountSettingsBrowseSubmitDown";
}
function up_profile_image_submit_1() {
storyImageSubmit1.className = "accountSettingsBrowseSubmit";
}
}
</script
私はここで何が間違っているのですか?
<----------------------更新:----------------------->
これは、私がやりたいことを達成するために配列が必要であると判断した後の現在の私のコードです。配列変数のループをテストしましたが、その部門のすべてが正常に機能しているようです。
私が今遭遇した次の問題は、各反復によって定義されたリスニング変数を上書きしないようにjavascriptを取得することです。そのための最善の方法は、ループ内の変数を削除して、各リスニングと関数の実行が一意になるようにすることです。私は、変数を書き直すことが機能しない理由であるという前提でそれを行っています。しかし、それを行った後でも、それは機能しません。
<script>
var storyImageValue = ["1","2","3","4","5","6","7","8","9","10"];
for (var i = 0; i < storyImageValue.length; i++) {
document.getElementById('realImageUpload' + storyImageValue[i]).addEventListener('mouseover', function () { document.getElementById('storyImageSubmit' + storyImageValue[i]).className = "accountSettingsBrowseSubmitHover"; }, false);
}
考え?