Я нашел ответ @ Piyush полезным, и, если добавить, что если вы программно создаете выбор, то есть важный способ получить такое поведение, которое может быть неочевидным. Допустим, у вас есть функция, и вы создаете новый выбор:
var changeitem = function (sel) {
console.log(sel.selectedIndex);
}
var newSelect = document.createElement('select');
newSelect.id = 'newselect';
Нормальное поведение может быть, чтобы сказать
newSelect.onchange = changeitem;
Но это на самом деле не позволяет вам указать передаваемый аргумент, поэтому вы можете сделать это:
newSelect.setAttribute('onchange', 'changeitem(this)');
И вы можете установить параметр. Если вы сделаете это первым способом, то аргумент, который вы получите для своей onchange
функции, будет зависеть от браузера. Второй способ, кажется, работает кросс-браузер просто отлично.