2013-02-01 164 views
2

我似乎无法更改下拉列表中第一个选项元素的文本。我已经试过:.text function not working

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> 
     ... 

请注意,所有的选择,选项和跨度标签是由LexisNexis的相互作用产生的,我不能改变的代码。这就是为什么我使用JavaScript将第一个选项从英文更改为法文。

任何帮助,将不胜感激!

+3

[适用于我](http://jsfiddle.net/tCteH/) – Peter

+1

我可以打赌你有两个网站上的dropboxes – Peter

+0

有趣的是,所有这些片段应该工作(FF内除'innerText'除外)。请发布您的真实代码+ HTML,我们会看到... – Teemu

回答

0

Woops!

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

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 - "); 

感谢和帮助!

+0

看来你已经找到了解决办法:)。你使用的是什么浏览器?在FF中我根本无法使用'label'工作,并且在使用'e_option'时,IE和Chrome也有一些奇怪的动作。我发现只有“安全”的方式是设置'select.options [0] .label'。顺便说一句,你可以接受你自己的答案,尽管你不会这样做,但是,其他人可以看到,你已经解决了你的问题。 – Teemu

+0

是的,我确实解决了它:)我确实感到有点傻,因为在发布之前没有试图改变这个属性。我使用的是IE9,但在Chrome中出现同样的情况。以http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_option_label为例... 我要等一下,看看有人会将它标记为已解决,以便我可以,也许,赚取一点代表。 – user1512880