Jump to content

Var value not working to get table row by Id

Recommended Posts

I'm trying to fill a table on my HTML page with values from my xml data file.

Var v is an HTMLCollection object containing these nodes extracted from the xml file:

<translator>Jay Reeve</translator>

I'm using this chunk of code. The vars are all local and declared earlier. 

for (r=0;r<v.length;r++) {
	str=v[r].innerHTML;				//str gets the value "Peters"
	if (str>"") {
		fld=v[r].nodeName;			//fld gets the value "publisher"
		x=document.getElementById(fld);		//x is "undefined"

On the first pass, x is supposed to reference the first row from this HTML table:

<table id="details">
   <tr id="publisher"> <td>  Publisher:</td><td></td></tr>
   <tr id="translator"><td> Translator:</td><td></td></tr>
   <tr id="slidecount"><td>Slide count:</td><td></td></tr>
   <tr id="pagecount"> <td> Page count:</td><td></td></tr>
   <tr id="other">     <td>      Other:</td><td></td></tr>

The debugger shows these values as they should be:
fld: "publisher"
str: "Peters"

but x=document.getElementById(fld) is left undefined and throws an error.

If I replace the variable fld  with the string "publisher", it works fine. The table row becomes visible and the empty cell gets the value "Peters".

So is there a restriction I don't know on using variables for Id's? Or Id's for table rows? I'm pretty sure I've done it before, but I can't see why this is failing. Is fld a restricted keyword? Could there be a type issue? I tried splicing quotes onto the fld string, but that didn't help. I don't think it can have anything to do with the fact that this is part of an anonymous callback function that runs after the file is loaded where v gets its value. Any insight would be most appreciated.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...