1

下面是我的代码。我希望 div 在被选中时出现,但是,当我按下提交时,会undefined出现这个词而不是我想要的词。

当我使用=而不是==,例如if(age="toddlers"),该句子"Bring to picnic"出现在所有选定的选项中。

因此,我怀疑这是因为我没有正确读取该值。我试过了

if (document.getElementsByTagName('option') == "toodlers")

它完全不起作用。我刚开始学习 HTML、CSS 和 JS。我尝试谷歌搜索了几个小时,但仍然无法修复它。

<form name="outing">
<select id="outing">
<option value="toddlers">Toddlers</option>
<option value="children">Children</option>
<option value="teenagers">Teenagers</option>
<option value="adults">Adults</option>
<option value="eldery">Elderly</option>
</select>
<input type="button" name="button" value="Go!" onClick="familyOuting();">
<input type="reset" value="Reset" onClick="window.location.reload()"/>
</form>

<script type="text/javascript">
    function familyOuting(){
        var age = document.getElementById("outing").selectedIndex;
        if(age=="toddlers"){
            var place = "Bring to picnic";
        }
        if(age=="children"){
            var place = "Bring to playground";
        }
        if(age=="teenagers"){
            var place = "Bring to swimming pool";
        }
        if(age=="adults"){
            var place = "Bring to dinner";
        }
        if(age=="elderly"){
            var place = "Bring to picnic";
        }
        document.getElementById("xxx").innerHTML=(place);
    }
</script>
<div id="xxx">
4

2 回答 2

2

selectedIndex只返回一个整数,因此它永远不会匹配你的字符串,

而是使用value...

var age = document.getElementById("outing").value;

此外,在您的比较中,===用于严格比较字符串..

if(age==="toddlers"){
    var place = "Bring to picnic";
}
于 2013-07-29T22:31:14.200 回答
0
<select id="mySelect">
  <option value="apple">Apple</option>
  <option value="orange">Orange</option>
  <option value="pineapple">Pineapple</option>
  <option value="banana">Banana</option>
</select>

var x = document.getElementById("mySelect");
x.options[x.selectedIndex].value
于 2013-07-29T22:43:19.200 回答