...

View Full Version : 'TypeError: xxx is not a function' is thrown only in Firefox



ravimagod
01-29-2011, 08:23 PM
Hi

I am trying to go through rows of table using

var table= document.getElementById('table');
var trows = table.getElementsByTagName('tr');


I am able run through the table and review each row in IE, Chrome it works perfectly. The same code when viewed in FireFox throws 'TypeError: trows is not a function' error. The error occurs when I try to get the row id by using 'trows(i).id' while 'trows.length' works fine.

I am foxed!! Any way to get over this.

The code HTML page is


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Firefox Error</title>
<script type="text/javascript">
function checkTable(){
var table= document.getElementById('table');

var trows = table.getElementsByTagName('tr');

for (var i= 0; i < trows.length; i++) {
try{

alert(trows(i).id);

}
catch(e){
alert(e);
}
}

}
</script>
</head>
<body onload="checkTable();">
<table id="table">
<tr id="tr1">
<td>Trial1</td>
<td>Trial2</td>
</tr>
<tr id="tr2">
<td>Trial4</td>
<td>Trial5</td>
</tr>
<tr id="tr3">
<td>Trial6</td>
<td>Trial7</td>
</tr>
<tr id="tr4">
<td>Trial11</td>
<td>Trial21</td>
</tr>
</table>

</body>
</html>


Thanks

Ravi

venegal
01-29-2011, 10:33 PM
You're trying to call it like a function (with parentheses), but it isn't a function, hence the error.

What you really want to do is access the entries of an array-like object, and that you do with brackets:


alert(trows[i].id);

ravimagod
01-30-2011, 04:37 PM
Hi

Thanks. It worked

Regards

Ravi



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum