2012-11-13 19 views
1

我是相當新的JavaScript,並試圖在我自己的工作,但我是一些新的對象和屬性。我相信下面的代碼可以用於更改文檔中的「全部」「選項」文本,但我需要它僅更改空選項標籤的文本值,例如:​​3210,至<option>Choose One</option>。我希望在頁面加載時執行此操作,因爲頁面是由asp動態生成的。JavaScript改變一個空白選項標籤的文本

<script type="text/javascript"> 
    function changeEmpty(){ 
     document.getElementByTagName('option')options[0].text='Choose One'; 
    } 
    </script> 
+1

@布魯諾,那是*錯誤*。 – epascarello

+0

@epascarello對不起。感謝您的更正。事實上,getElementByTagName中也有一個缺失的「s」。它應該是'document.getElementsByTagName('option')[0] .text ='選擇一個';' – Bruno

回答

2

如果它要成爲一個頁面上的第一個選項中選擇這將是

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

這將是更好的指定元素,所以如果有人在將來增加了前一個選擇它,沒關係。

document.getElementById("MyId").getElementsByTagName('option')[0].text='Choose One'; 
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"; 
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和以前的版本!請參閱caniuse.com

+0

你應該注意到並非所有的瀏覽器都支持querySelector。 – epascarello