2015-08-18 2 views
0

JS кодДля справки по циклу в javascript?

<script type="text/javascript"> 
    var list = document.getElementsByClassName('sortByTestName'); 

    for (var i = 0; i < list.length; i++) { 
     var current = list[i].innerHTML; 
     list[i].onclick = function() { 
      window.alert(current); 
     } 

    } 
</script> 

Ok поэтому здесь код итерацию через HTML файл найти элементы от class name и я сделал for loop, который проходит через это. Все элементы отображаются на экране, и когда один элемент кликается, я хотел бы предупредить значение элемента, который был нажат. Например, пусть говорят, что элементы - это цифры 1-10. Они отображаются вертикально на странице, и когда пользователь нажимает, например, браузер номер 3 должен предупредить в окне 3. Все в плане дизайна/отображения работает. Проблема в том, что когда я нажимаю на любой элемент, последний элемент всегда отображается. В терминах нашего номера примера, если пользователь нажимает номер 5, последний номер 10 показывает. Если пользователь нажимает на любое число, последний номер отображается. Я считаю, что это происходит потому, что весь цикл выполняется до того, как что-то щелкнуло. Мне интересно, как я могу это исправить.

ответ

1

var list = document.getElementsByClassName('sortByTestName'); 
 

 
for (var i = 0; i < list.length; i++) { 
 
    list[i].onclick = function() { 
 
    window.alert(this.innerHTML); 
 
    } 
 
}
div:hover { 
 
    cursor: pointer; 
 
}
<div class="sortByTestName"> 
 
    <span>Here is some inner html</span> 
 
</div> 
 
<div class="sortByTestName"> 
 
    <span>Some more inner html</span> 
 
</div>

Смежные вопросы