ฉันพบว่าคำตอบของ @ 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
ทำงานของคุณจะขึ้นอยู่กับเบราว์เซอร์ วิธีที่สองดูเหมือนว่าจะทำงานข้ามเบราว์เซอร์ได้ดี