javascript更改选择选项文本

javascript更改选择选项文本,javascript,html,Javascript,Html,我试图通过javascript修改第一个选择选项的文本。 但它会清空整个选择选项 <select name='stuff'> <option value="a"> Pepsi </option> <option value= "b"> Juice </option> </select> <script type="text/javascript"> document.get

我试图通过javascript修改第一个选择选项的文本。 但它会清空整个选择选项

 <select name='stuff'>
      <option value="a"> Pepsi </option>
      <option value= "b"> Juice </option>
 </select>


<script type="text/javascript">
    document.getElementsByName('stuff')[0].innerHTML = "Water";
</script>

百事可乐
果汁
document.getElementsByName('stuff')[0].innerHTML=“Water”;
要从集合中读取并修改其中的第一个元素:

document.getElementsByName('stuff')[0].options[0].innerHTML = "Water";

我认为这应该奏效:

 <select name='stuff'>
          <option id="first" value="a"> Pepsi </option>
          <option value= "b"> Juice </option>
     </select>


    <script type="text/javascript">
        document.getElementById("first").innerHTML = "Water";
    </script>

百事可乐
果汁
document.getElementById(“第一”).innerHTML=“水”;
您可以尝试以下方法:

 $('select[name=stuff] option:first').html("abcd");

如果您只是设置文本,请使用
textContent
而不是
innerHTML
可能重复的@NickDugger,真的吗?IE8呢?:)@RokoC.Buljan取决于他的目标平台,但是你会使用innerText和textContent的组合,但是innerHTML在这里很不合适。@Frinsh只是为了记录,FF不支持innerText,所以你必须做一个简短的多边形填充,在这种情况下你应该多边形填充textContent,而不是相反。OP没有要求jQuery,这个问题也没有jQuery标记。同样的问题,我想用于jQuery-感谢您的贡献。应该是:document.getElementsByName('stuff')。options[0]。innerHTML=“Water”@AndreNel Nope,
getElementsByName
返回一个类似数组的对象,因此您需要在该数组中选择第一个:)啊,当然,我看到它使用getElementsByName,我在想getElementById。。。所以我在想:document.getElementById('stuff')。options[0]。innerHTML=“Water”。。。这将获得一个select,但基于Id而非名称,而不是给定的内容:document.getElementsByName('stuff')[0]。选项[0]。innerHTML=“Water”。。。对不起……:)还可以工作:document.getElementById(“第一”).text=“水”;