javascript中的onchange不起作用

javascript中的onchange不起作用,javascript,jquery,html,Javascript,Jquery,Html,这是我的代码: <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> <script src="jquery-2.2.1.min.js"></script> <script src="slike.js"></script> <title>Uvod v jQuery<

这是我的代码:

<!DOCTYPE html>
<html>
<head>

<link rel="stylesheet" type="text/css" href="style.css">
<script src="jquery-2.2.1.min.js"></script>
<script src="slike.js"></script>
<title>Uvod v jQuery</title>
</head>
<body>

<select id="izberi" onchange="yes()">
  <option value="1">Slika 1</option>
  <option value="2">Slika 2</option>
  <option value="3">Slika 3</option>
  <option value="4">Slika 4</option>
</select>

<script>
//without function
var tmp = document.getElementById("izberi");
var izbira = tmp.options[tmp.selectedIndex].value;

if(izbira == 1) {
    ...
} else if(izbira == 2) {
    ...
}

//with function
function yes(){
    var tmp = document.getElementById("izberi");
    var izbira = tmp.options[tmp.selectedIndex].value;
    if(izbira == 1) {
        ...
    } else if(izbira == 2) {
        ...
    }
}
</script>

</body>
</html>

Uvod v jQuery
斯莱卡1号
斯莱卡2号
斯莱卡3
斯莱卡4
//无功能
var tmp=document.getElementById(“izberi”);
var izbira=tmp.options[tmp.selectedIndex].value;
如果(izbira==1){
...
}else如果(izbira==2){
...
}
//有功能
函数yes(){
var tmp=document.getElementById(“izberi”);
var izbira=tmp.options[tmp.selectedIndex].value;
如果(izbira==1){
...
}else如果(izbira==2){
...
}
}

在IF语句中,我创建了一个HTML表,其中的行和列基于select中选择的内容。现在,如果我不使用这个函数(在select中没有onchange),那么当我进入站点时,我的代码就会工作(select的默认值是1)。

但当我选择另一个值(例如2)时,什么也不会发生,因为我的代码只执行一次(当我进入站点时)。现在我试图通过onchange和调用函数来解决这个问题(我的函数中有完全相同的代码),但是如果我这样做并选择另一个值,我的页面就会变白,看起来我的函数一直在执行,没有停止(加载网页时会发生同样的情况)

那么我在哪里犯了错误

编辑

我正在使用document.write();要在进入页面时创建HTML表,在我选择不同的值并调用函数后,它似乎不起作用,我想这是我的问题。

我不确定您的代码出了什么问题,但下面的代码完全符合您的要求,并且稍微优雅一些

要进行尝试,请运行代码段或转到

var-izberi=document.getElementById(“izberi”);
var izbira=document.getElementById(“izbira”);
var yes=函数(){
var selected=izberi.options[izberi.selectedIndex].value;
开关(选定){
案例“1”:
//如果IZBERI的值为“1”,则无论您希望发生什么
izbira.value=已选择;
打破
案例“2”:
//如果IZBERI的值为“2”,你想发生什么
izbira.value=已选择;
打破
案例“3”:
//如果IZBERI的值为“3”,你想发生什么
izbira.value=已选择;
打破
案例“4”:
//如果IZBERI的值为“4”,你想发生什么
izbira.value=已选择;
打破
违约:
//如果IZBERI有另一个价值,你想发生什么
}
}
是的();
izberi.addEventListener(“变更”,是)

斯莱卡1号
斯莱卡2号
斯莱卡3
斯莱卡4

-它可以工作-检查控制台中您没有粘贴的代码片段中是否有任何错误。@Nirri yes看起来问题出在其他地方ty。@Zoltan Toth yes我甚至没有尝试过,看起来问题出在我的其他代码ty上。@yack:您不应该使用
document.write()-->我试过了,但什么也没发生,sry,我没有。但是需要帮助,正如其他人提到的,我的代码实际上是有效的,所以问题在于我没有粘贴的代码。@yack如果你粘贴了所有代码或至少相关部分,那么可能有人可以帮助你。显然我的代码没有问题,只是我没有发布代码中的某个地方有错误,但是我需要更优雅的代码。@Larry Lane我真的不想用我的代码打扰你们,因为代码太多了。但我很高兴我知道我现在应该在哪里检查错误。