Почему эта переменная вызывает ошибку “не является функцией”?

#javascript

#javascript

Вопрос:

  window.onload = raknaUtMedelvarde;

function raknaUtMedelvarde(){

    var tabell = document.getElementById("temperaturtabell");
    var rader = tabell.getElementsByTagName("tr");

    for (var i = 0; i < rader.length; i  ){
        var tabellcell = rader[i].getElementById("td");
       //räkna ut medelvärde
        var medel = medelVarde(tabellcell);

        var medelText = document.createTextNode(medel);
        var medelElement = tabellcell[tabellcell.length - 1];
        medelElement.appendChild(medelText);


    }
}

function medelVarde(celler){
    var summa = 0;
    for (var i = 1; i < celler.length - 1; i  ){

         var nuvarandeVarde = celler[i].firstChild.nodeValue;
         summa = summa   parseInt(nuvarandeVarde);
    }
    return summa / 5;
  

Согласно консоли ошибок в Firefox, эта переменная «tabellcell: var tabellcell = rader[i].getElementById(«td»);» не является функцией? uhn?

Комментарии:

1. medelVarde() Ожидает ли функция в качестве аргумента?

2. Вы также должны опубликовать свою функцию medelVarde().

3. @ Marcel да, в моих таблицах 6 ячеек…

Ответ №1:

вы не можете использовать

rader[i].getElementById("td");

getElementById — это метод объекта document. переменная rader содержит некоторые другие объекты (element objects) Я предполагаю.

объекты element имеют только getElementsByTagName и getElementsByClassName вы можете их использовать.

Комментарии:

1. Я подумал то же самое, но причина этой ошибки не в этом: jsfiddle.net/fkling/VPq8y/1

2. Исправление: Нет, это действительно причина. Я забыл отменить выбор Mootools в качестве библиотеки, и, похоже, это добавляет getElementById функцию к элементам. NVM!

3. @MarcelKorpel: Нет … но у меня есть оправдание: вчера был мой день рождения, и я все еще немного устал : D 😉 Может быть, мне стоит прекратить писать nonesense сейчас и начать чистку… я полагаю, так лучше для всех 🙂

Ответ №2:

Я думаю, что ошибка в этой строке

  var tabellcell = rader[i].getElementById("td")
  

Замена getElementById на getElementsByTagName

   var tabellcell = rader[i].getElementsByTagName("td")
  

Комментарии:

1. @ Marwan привет! Отлично!!!!!! это было: getElementsByTagName(«td») ^_^) большое спасибо!!

2. только, пожалуйста, не забудьте отметить мой ответ как правильный, если он был вам полезен в моем отношении 🙂

3. в левой части моего ответа есть правильный знак, просто нажмите на него, и все будет сделано 🙂 а также вы также можете использовать стрелку вверх рядом с моим ответом 🙂