Я нашел ответ @ Пиюша полезным, и, если добавить, что если вы программно создаете выбор, есть важный способ получить такое поведение, которое может быть неочевидным. Допустим, у вас есть функция, и вы создаете новый выбор:
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
функции, будет зависеть от браузера. Второй способ, кажется, работает кросс-браузер просто отлично.