Javascript更改空白选项标记的文本

时间:2012-11-13 16:26:15

标签: javascript

我对javascript很新,并试图自己解决这个问题,但我是一些对象和属性的新手。我相信我下面的代码可以用于更改文档中的“所有”“选项”文本,但我需要它只更改空选项标记的文本值,例如; <option></option><option>Choose One</option>。我想在页面加载时执行此操作,因为页面是由asp。

动态生成的
 <script type="text/javascript">
    function changeEmpty(){
      document.getElementByTagName('option')options[0].text='Choose One';
    }
    </script>

3 个答案:

答案 0 :(得分:2)

如果它将成为页面上的第一个选项,那么它将是

document.getElementsByTagName('option')[0].text='Choose One';

最好指定元素,以便将来有人在其之前添加一个选择,这无关紧要。

document.getElementById("MyId").getElementsByTagName('option')[0].text='Choose One';

答案 1 :(得分:0)

  

“我需要它才能更改空选项标签的文本值...”

您的语法无效,因此我不确定您认为它会改变所有option元素的原因。

但你可以做的只是迭代它们,并测试文本内容。

var opts = document.getElementsByTagName('option');

for (var i = 0, len = opts.length; i < len; i++) 
    if (opts[i].text === "")
        opts[i].text = "Choose One";

答案 2 :(得分:0)

如果您确实想要更改没有内容的所有<option>,则可以使用此代码

function changeEmpty(){
  var els = document.querySelectorAll( 'option' );

  for ( var i=els.length; i--; ) {
    if ( els.innerHTML.trim() == '' ) {
      els.innerHTML = 'choose one';
    }
  }
}

假设空的<option>始终是每个<select>标记中的第一个,请更改为

var els = document.querySelectorAll( 'select > option' );

保存一些计算。

编辑

所有现代浏览器都支持

querySelectorAll(),但在IE7及以前的版本中不支持!{p> {{1}}请参阅caniuse.com