<!DOCTYPE html> <html> <body> <select id='selectid' onchange="selectchange()"> </select> <script> for (let i=0;i<10;i++) { var select = document.getElementById("selectid"); var option = document.createElement("option"); option.text = "text="+i; option.value = i; select.add(option); } function selectchange() { alert(document.getElementById("selectid").value); } </script> </body> </html> var select = document.getElementById("selectid"); var option = document.createElement("option"); option.text = "text="+i; option.value = i; option.value2 = a; select.add(option);Necesito agregar dos valores para mi opción usando la sintaxis anterior.
Puede intentar usar setAttribute y getAttribute .
<!DOCTYPE html> <html> <body> <select id='selectid' onchange="selectchange()"> </select> <script> for (let i=0;i<10;i++) { var select = document.getElementById("selectid"); var option = document.createElement("option"); option.text = "text="+i; option.value = i; option.setAttribute("data", Math.random()); option.setAttribute("data1", `data1_${Math.random()}`); select.add(option); } function selectchange() { const select = document.getElementById("selectid"); const data = select.options[select.selectedIndex].getAttribute("data"); const data1 = select.options[select.selectedIndex].getAttribute("data1"); console.log(`value is: ${select.value} and data is: ${ data } data1 is: ${data1}`); } </script> </body> </html>Espero que esto sea lo que estabas buscando!!
La primera solución es usar atributos de datos :
<!DOCTYPE html> <html> <body> <select id='selectid' onchange="selectchange()"> </select> <script> for (let i = 0; i < 10; i++) { var select = document.getElementById("selectid"); var option = document.createElement("option"); option.text = "text=" + i; option.value = i; option.dataset['var-1'] = i; option.dataset['var-2'] = 'value2'; option.dataset['var-3'] = 'value3'; // and etc. select.add(option); } function selectchange() { const selectedOption = document.getElementById("selectid").selectedOptions[0] console.log(selectedOption.dataset); } </script> </body> </html>La segunda solución es usar una variable externa para almacenar datos adicionales:
<!DOCTYPE html> <html> <body> <select id='selectid' onchange="selectchange()"> </select> <script> const dataStore = {}; for (let i = 0; i < 10; i++) { var select = document.getElementById("selectid"); var option = document.createElement("option"); option.text = "text=" + i; option.value = i; select.add(option); dataStore[i] = { var1: i, var2: 'var2', var3: 'var3' }; } function selectchange() { const index = document.getElementById("selectid").value const value = dataStore[index] console.log(value); } </script> </body> </html>