东南西北飘 发表于 2020-8-11 15:49:12

请教一个js问题

<script type="text/javascript">
       function Change(moren){
       var objS= document.getElementById("bgid");
      var col= objS.options.value;
       if (col==""){
       var col= moren;
       }
         if (col=="col1")
         {objS.style.background = "green";}
         if (col=="col2")
         {objS.style.background = "red";}
       }
</script>

<select name="color" size="1" id="bgid" onchange="Change()">
<option value="" style='background-color:#FFFFFF'>
<option value=col1 style='background-color:green'>绿色
<option value=col2 style='background-color:red'>红色
</select>

<span onclick="Change('col1')">绿</span>
<span onclick="Change('col2')">红</span>


现在的情况是,打开页面时,点击文字 红 绿,可以更改下拉项的背景颜色,但从下拉框中选择一项后,再点击文字 红 绿,就无法改变了,要怎么写正确?

hansson 发表于 2020-8-11 15:49:13

本帖最后由 hansson 于 2020-8-11 16:35 编辑

if (col==""){
var col= moren;
}

当你选择下拉以后,col就不等于空了
col= moren
这句就不再执行了,所以
亲测了一下:

<script type="text/javascript">
       function Change(moren){
       var objS= document.getElementById("bgid");
       var col=""
      if (moren){
          col= moren;
       }
       else{
         col= objS.options.value;
      }
         if (col=="col1")
         {objS.style.background = "green";}
         if (col=="col2")
         {objS.style.background = "red";}
       }
      
</script>

hansson 发表于 2020-8-11 16:06:57

本帖最后由 hansson 于 2020-8-11 16:35 编辑

参考楼上。

Kite 发表于 2020-8-11 16:07:48

<option value=col1 style='background-color:green'>还少个双引号

dikena 发表于 2020-8-11 16:18:17

if (col==""){
       var col= moren;
       }

这段有问题。

改为:

if (typeof(moren) != "undefined"){
          col= moren;
        }

即可

森林 发表于 2020-8-11 16:30:20

这两行
if (col=="col1")
         {objS.style.background = "green";}
         if (col=="col2")
         {objS.style.background = "red";}
改为:
if (moren=="col1")
         {objS.style.background = "green";}
         if (moren=="col2")
         {objS.style.background = "red";}
应该能达到楼主的需要。

hansson 发表于 2020-8-11 16:31:49

亲测了一下:
<script type="text/javascript">
       function Change(moren){
       var objS= document.getElementById("bgid");
       var col=""
      if (moren){
          col= moren;
       }
       else{
         col= objS.options.value;
      }
         if (col=="col1")
         {objS.style.background = "green";}
         if (col=="col2")
         {objS.style.background = "red";}
       }
       
</script>
页: [1]
查看完整版本: 请教一个js问题