我有一个带有 onchange 的选择框:
<select id="select" onchange="eventA();">
我想将“onchange”更改为其他内容,例如更改为 eventB();。
我试过这个,基于这篇文章:How to add an onchange event to a select box via javascript?
document.getElementById("select").onchange="eventB()";
但是,没有任何反应,onchange 没有改变。
有什么想法吗?
最佳答案
您好,您应该试试这段代码。
<html>
<head>
<title> Script </title>
<script type='text/javascript'>
function changeFirst(){
alert('I am first');
}
function changeSecond(){
alert('I am second');
}
function changer(){
document.getElementById('selectinput').attributes.onchange.nodeValue = "changeSecond()";
}
</script>
</head>
<body onload="changer()">
<select id="selectinput" onchange="changeFirst()">
<option value="1"> One </option>
<option value="2"> two </option>
<option value="3"> three </option>
<option value="4"> four </option>
<option value="5"> five </option>
</select>
</body>
</html>
使用 jquery 而不是纯 javascript 有点容易。但是对于 javascript,您不能通过目录更改任何属性,例如 value 或 innerHTML。 document.getElementById('ELEMENT_ID') 将返回 html 标签而不是对象。您可以使用 document.getElementById('ELEMENT_ID').value = 'your_value' 更改值,但更改任何事件属性都不是这样完成的。 document.getElementById('ELEMENT_ID').attribute 将返回元素的所有已使用属性,您可以使用我在示例中向您展示的 nodeValue 更改它的值。
根据您的需要再澄清一下,如果您在选择框更改事件中编写此代码,而不是每次调用您的第一个事件时,例如如果我将 changer() 函数代码写入 changeFirst() 函数,那么选择框的更改事件将在第一次触发 changeFirst() 并且从下一次 changeSecond() 事件将触发。所以我建议你使用 jquery change event 而不是使用纯 javascript 来防止这种类型的混淆。
关于javascript - 更改 'onchange' 的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39886946/