Я вважаю, що відповідь @ 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
функції, буде залежати від браузера. Другий спосіб, здається, працює крос-браузер просто чудово.