【问题标题】:.text function not working.text 功能不起作用
【发布时间】:2013-01-17 05:53:00
【问题描述】:

我似乎无法更改下拉列表的第一个选项元素的文本。我试过了:

var e_option = document.getElementsByTagName("option");
e_option[0].text = "Selectionnaire";

var e_option = document.getElementsByTagName("option");
e_option[0].innerHTML = "Selectionnaire";

var e_option = document.getElementsByTagName("option");
e_option[0].innerText = "Selectionnaire";

但是,似乎没有任何改变选项的文本。

最奇怪的是:

    var e_option = document.getElementsByTagName("option");
    e_option[0].style.color = "red"; 

确实将选项更改为红色字体,并且

    var e_option = document.getElementsByTagName("option");
    alert(e_option[0].text);

是否提醒/弹出选项的当前文本。

这是 HTML:

    ...
    <td id="control">
        <SPAN CLASS="rsfieldcontrol"><INPUT TYPE=TEXT CLASS="rsfieldcontrol" MAXLENGTH=20 SIZE=38 TABINDEX="70" NAME="CONTACTVERIFY1businessPostalCode" VALUE=""></SPAN>
    </td>
    <td>&nbsp;

    </td>
    <td>
        <SPAN CLASS="rsfieldlabel">Pays :</SPAN>
    </td>
    <td id="control">    
        <SPAN CLASS="rsfieldcontrol">
             <SELECT  CLASS="rsfieldcontrol"  TABINDEX="110" NAME="CONTACTVERIFY1businessCountry">
              <OPTION LABEL=" - Select an option - " VALUE=" - Select an option - "> - Select an option - </OPTION>
              <OPTION LABEL="Afghanistan" VALUE="Afghanistan">Afghanistan</OPTION><OPTION LABEL="Albania" VALUE="Albania">Albania</OPTION>
              //I cut out the other 200 odd countries here
              <OPTION LABEL="Zimbabwe" VALUE="Zimbabwe">Zimbabwe</OPTION></SELECT></SPAN> 
    </td>
</tr>
<tr>
    <td width="30px">&nbsp;

    </td>
    <td style="font-weight:bold;">
        <SPAN CLASS="rsfieldlabelrequired">* Courriel :</SPAN>
    </td>
      ...

请注意,所有的 select、option 和 span 标签都是由 LexisNexis InterAction 生成的,我无法更改代码。这就是我使用 javascript 将第一个选项从英语更改为法语的原因。

任何帮助将不胜感激!

【问题讨论】:

  • 我敢打赌你在网站上有两个保管箱
  • 有趣,所有这些 sn-ps 都应该可以工作(innerTextin FF 除外)。请贴出你的真实代码+HTML,我们拭目以待...
  • @Peter 他们绝对只是一个下拉菜单。
  • 请把你所有的 HTML 放到 jsfiddle.net 或者……

标签: javascript select option innerhtml innertext


【解决方案1】:

哎呀!

正在显示选项标签的标签属性值,而不是选项开始和结束标签之间的文本。因此我只需要写:

var e_option = document.getElementsByTagName("option");
e_option[0].setAttribute("label", "");
e_option[0].text = " - Selectionner - ";

甚至

var e_option = document.getElementsByTagName("option");
e_option[0].setAttribute("label", " - Selectionner - ");

感谢您的 cmets 和帮助!

【讨论】:

  • 看来您已经找到了解决方案:)。你使用的是什么浏览器?我在 FF 中根本无法让 label 工作,并且在使用 e_option 时对 IE 和 Chrome 也有一些奇怪的操作。我发现的唯一“安全”方式是设置select.options[0].label。顺便说一句,您可以接受自己的答案,尽管这样做不会获得任何代表,但是,其他人可以看到,您已经解决了问题。
  • 是的,我确实解决了 :) 我确实觉得有点傻,因为在发布到 SO 之前没有尝试更改该属性。我使用的是 IE9,但在 Chrome 中也会出现同样的行为。以w3schools.com/tags/tryit.asp?filename=tryhtml_option_label 为例...我会稍等片刻,看看是否有人会将其标记为已解决,以便我可以,也许,赚取一点代表。
猜你喜欢
  • 2022-11-26
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2021-08-27
相关资源
最近更新 更多