Ошибка JavaScript «Объект не поддерживает это свойство или метод» на document.getElementByID? - PullRequest
0 голосов
/ 26 августа 2011

Я пытаюсь запустить эту функцию JS, когда пользователь нажимает на Panel (в TableCell). Эта панель является элементом на странице контента, которая используется с главной страницей, которая имеет заполнитель контента. Когда я пытаюсь нажать на панель, выдается следующее сообщение об ошибке:

Ошибка времени выполнения Microsoft 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

Ответы [ 5 ]

8 голосов
/ 26 августа 2011

JavaScript чувствителен к регистру. document.getElementByID() не является функцией, но document.getElementById() является.

6 голосов
/ 26 августа 2011

Капитализация имеет значение.

document.getElementByID() //wrong
document.getElementById() //right
4 голосов
/ 26 августа 2011

Это должен быть document.getElementById, а не document.getElementByID.

3 голосов
/ 26 августа 2011

JavaScript чувствителен к регистру.попробуйте document.getElementById вместо document.getElementByID

0 голосов
/ 16 марта 2014

Вы должны изменить getElementID на getElementById.Я тоже так делал и не мог понять это в течение нескольких дней.Просто помните, что JavaScript чувствителен к регистру и использует строчный CamelCase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...