2012-08-07 127 views
0

我正在嘗試做一個使用javascript更改頁面內容的示例。假設我有一個頁面:javascript,更改頁面內容

<html> 
<head> 
</head> 
<body> 
<select id="a96780" multiple="multiple" name="a96780" size="3" value="deneme"> 
<option selected="selected" value="#ANY">ALL</option> 
<option value="1111294">Ex1</option> 
<option value="1111292">Ex2</option> 
<option value="1111290">Ex3</option> 
</select> 
</body> 
</html> 

我希望能夠關閉所有的選項,練習1,實例2,實例3(設置其類型的隱藏或通過其他方式)的頁面加載時。爲了實現這一點,我跟着但是網上的指令未能通過做這樣做:

<script type="text/javascript"> 

function myFunction() 
{ 
var selectBox = document.getElementById("a96780"); 
alert("smt"); 
alert(selectBox.name); 
} 

myFunction(); 

</script> 

在上面的腳本中,我試圖打印出該元素的名稱,以確認我其實有保留的。但是最後一行永遠不會被打印。我如何確認我已經將元素初始化爲selectBox,並且應該如何從那裏繼續。選項值是否足以提及項目:「Ex1,Ex2和Ex3」?

編輯1:我絕對沒有鏈接到html,我不能修改body標籤,也不能放任何可以啓動myFunction的按鈕,因此無論我做什麼,我都必須通過js來完成。除此之外,如果你能指導我如何繼續下去,這也將是美好的。例如,我可以從它們的值中引用選項項嗎?

回答

1

我的解決辦法是:

<html> 
<head> 
<script type="text/javascript"> 

function initialTypeCorrection() 
{ 
    var selectBox = document.getElementById("a96780"); 
    if(selectBox != null) 
    { 
      var options = selectBox.getElementsByTagName("option"); 
      for (var i = 0; i < options.length; i ++) 
      { 
       // Alternative 1 
       if(options[i].value=="1111294" || options[i].value=="1111292" || options[i].value=="1111290") 
       { 
        options[i].disabled = "true"; 
        options[i].text = ""; 

       } 
      } 
    } 

} 
window.onload = initialTypeCorrection; 

</script> 
</head> 
<body> 
<select id="a96780" multiple="multiple" name="a96780" size="4"> 
<option selected="selected" value="#ANY">all</option> 
<option value="1111294">a1</option> 
<option value="1111292">a2</option> 
<option value="1111290">a3</option> 
</select> 
</body> 
</html> 
0

你可能想嘗試

<body onload="myFunction()">

與其說這是在腳本標籤,因爲當JavaScript是在身體標記的東西不被初始化。

0

您需要等到DOM完全加載。這意味着HTML已被瀏覽器理解和組織。如果在此之前執行javascript,則元素將不存在,因此不會被操縱或打印。等待DOM加載

的一種方法是通過將函數調用到body標籤的onload ...

<body onload="myFunction();"> 
0

繼承人的工作例如:(代碼的)

http://jsfiddle.net/44fQX/

任何問題,只是問:)

+1

如果你可以在你的答案中提供代碼總是更好(最好只是showin g的變化,而不是期望人們找到你所改變的)。這是因爲這個鏈接不能保證將來仍然存在,你可能會得到公認的答案! – freefaller 2012-08-07 08:05:54

+0

對不起:) :) – LmC 2012-08-07 08:13:52

+0

沒有道歉,只是想幫助 – freefaller 2012-08-07 08:15:10

0

Regarging你的問題的這部分:「我希望能夠關閉所有運蒸發散,練習1,實例2,實例3(設置其類型的隱藏或通過其他方式),在頁面加載時」

 
function closeAllOptions() { 
    var slc = document.getElementById("a96780"), i, opt; 
    for (i=0; opt=slc[i]; i++) { 
     if (opt.value!="#ANY") { 
      opt.disabled=true; 
      // update 
      opt.style.display="none"; 
     } 
    }    
} 
function relaseAllOptions() { 
    var slc = document.getElementById("a96780"), i, opt; 
    for (i=0; opt=slc[i]; i++) { 
     opt.disabled=false; 
     // update 
     opt.style.display=""; 
    }    
} 

測試:http://jsfiddle.net/44fQX/1/

UPDATE http://jsfiddle.net/44fQX/3/

+0

選擇禁用使他們無法選擇,但仍然可見,有沒有辦法讓他們隱藏或銷燬? – Pumpkin 2012-08-07 10:43:29

+0

是的,查看更新。 – 2012-08-07 10:48:54