2011-08-26 179 views
0

我試圖運行這個JS函數時,用戶點擊一個面板(在TableCell)。此面板是內容頁面中的一個元素,與具有內容佔位符的主頁面一起使用。當我嘗試點擊面板上,下面的錯誤被拋出:關於document.getElementByID的Javascript錯誤「對象不支持此屬性或方法」?

微軟JScript運行時錯誤:對象不支持此屬性或方法

這裏是母版頁相關的代碼ASPX:

 <link rel="Stylesheet" href="../includes/styles.css" /> 
     <script type="text/javascript" language="javascript"> 
      function swapDirections(control) { 
       var main = document.getElementByID('ct100_TableContent_' + control); 
       var long = document.getElementById('ct100_TableContent_' + control + '_long'); 
       var short = document.getElementById('ct100_TableContent_' + control + '_short'); 

       var mainhtml = main.innerHTML; 
       var longhtml = long.innerHTML; 
       var shorthtml = short.innerHTML; 

       if (mainhtml.length == shorthtml.length) 
        main.innerHTML = longhtml; 
       else 
        main.innerHTML = shorthtml; 
      } 
     </script> 

下面是內容頁面的相關代碼:

  Panel rigDirections = new Panel(); 
      rigDirections.CssClass = "clip"; 
      rigDirections.ID = u.Id.ToString() + "_RD"; 
      string MainDivRD = rigDirections.ClientID; 
      Literal rigDir = new Literal(); 
      string sshort = ""; 
      if (u.RigDirections.ToLower().Length > (textCutOFF + 4)) 
      { 
       sshort = Server.HtmlEncode(u.RigDirections.ToLower().Substring(0, textCutOFF).Trim()) + " ..."; 
       rigDir.Text = "<a class=RD_RA title=\"Click to Expand\" href=\"javascript: swapDirections('" + MainDivRD + "')\">" + sshort + "</a>"; ; 
      } 
      else 
      { 
       sshort = Server.HtmlEncode(u.RigDirections.ToLower().Trim()); 
       rigDir.Text = sshort ; 
      } 
      string slong = Server.HtmlEncode(u.RigDirections.ToLower().Trim()); 

      rigDirections.Controls.Add(rigDir); 
      cell.Controls.Add(rigDirections);  

和內容頁ASPX:

 <asp:Content ID="Content1" ContentPlaceHolderID="TableContent" Runat="Server"> 

     <asp:Panel ID="pnlTable" Width="950" runat="server"> 

     </asp:Panel> 
     </asp:Content> 

錯誤在函數的第一行被拋出。

我已經用盡了我的互聯網搜索技巧,而且我從未使用過JS,所以如果有人有任何想法,我將非常感激他們。

謝謝!

badPanda

+0

什麼類型的元素是'var main = document.getElementByID('ct100_TableContent_'+ control);'? –

+0

哇,這是令人尷尬的!多謝你們。 – badpanda

回答

8

javascript區分大小寫。 document.getElementByID()不是函數,但是document.getElementById()是。

+1

不,它是'get'。 – pimvdb

+1

@pimvdb。哈,諷刺。 – scottm

4

應該不是的document.getElementById的document.getElementById。

6

大寫字母很重要。

document.getElementByID() //wrong 
document.getElementById() //right 
3

javascript區分大小寫。嘗試使用document.getElementById代替document.getElementByID

0

您應該將getElementID更改爲getElementById。我也這樣做了,幾天後都沒弄明白。請記住,JavaScript是區分大小寫的,並使用小寫的CamelCase。

+0

我認爲你在兩種情況下都拼寫錯了'getElementById'。這個答案也已經提供。 – Mathias

相關問題