Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #20262

Re: Prob with IE8 and getElementsByName()

From Denis McMahon <denismfmcmahon@gmail.com>
Newsgroups comp.lang.javascript
Subject Re: Prob with IE8 and getElementsByName()
Date 2013-06-13 09:30 +0000
Organization A noiseless patient Spider
Message-ID <kpc3ge$j0k$1@dont-email.me> (permalink)
References <b1pkhiFc1amU1@mid.individual.net> <51b86558$0$6630$9b4e6d93@newsspool2.arcor-online.net> <b1rfdhFntnvU1@mid.individual.net>

Show all headers | View raw


On Wed, 12 Jun 2013 08:37:30 -0600, Mel Smith wrote:

> "Martin Honnen" <mahotrash@yahoo.de> wrote in message
> news:51b86558$0$6630$9b4e6d93@newsspool2.arcor-online.net...
>> Mel Smith wrote:
>>
>>>      Using IE8 and the method document.getElementsByName("somename")
>>> works correctly for <input> elements with a 'name'
>>>
>>>      However, it fails to produce an array of objects for <td>
>>>      elements.
>>>
>>>      Is there a workaround for this please ?
>>
>> Neither HTML 4 nor HTML5 define a "name" attribute on "td" elements I
>> think (while of course form controls like "input" elements have such an
>> attribute).
>>
>> So what do you want to achieve? If you want to group some "td" elements
>> other than by putting them into "tr" elements in the same "tbody" then
>> use the "class" attribute. In that case getElementsByClassName should
>> help, although for IE 8 you will need to implement it or use
>> querySelectorAll.
> 
> Hi Andrew & Martin:
> 
>     Altho, I have four other tables on my page, I now have another and
>     last
> (up to) 7-row table (with 6 columns) I wish to populate from an Ajax
> response.
> 
>     I was going to use the the 'name=' clause on the <td> elements of
>     this
> short table to tell me which column I was going to fill from the AJAX
> responsetext.
> 
>     This is working perfectly with FF and with Chrome -- but , with IE8,
>     the
> statement:
> 
>           amarkers =  document.getElementsByName("markers"),
>           aratings =  document.getElementsByName("ratings"),
>           (etcetera ... for 6 columns)
> 
>            but,  the value of amarkers.length --> 0 when it should be
>            from 1
> thru approx 7 (rows, that is)
> 
>    Then, I use the objects in the arrays (e.g., amarkers) to populate
>    the
> table from my Ajax response.
> 
>    I guess I *could* use document.getElementsByTagName("td"), but then
>    I'd
> have up to 7000 <td> elements to run thru ...
> 
>     I guess I'll 'plant' id="xxxxxx" each each of my 40 or so <td>
>     elements
> instead.
> 
> Thanks for the response.

Hi Mel

Don't forget that you can refine the selection repeatedly.

eg select a specific table, then select all the rows, skip however many 
rows contain headers, then start working through the data rows and the 
cells in each data row

So instead of document.getElementsByTagName you could:

cells = document.getElementsById("table_id").getElementsByTagName("td");

to get all the td cells in a specific table

Although you may want to work through them row by row:

rows = document.getElementsById("table_id").rows;
a = // number of header rows in this table
for ( i = a; i < rows.length; i++ ) {
	cells = rows.item(i).cells;
		for ( j = 0; j < cells.length; j++ ) {
		// cell number in data area, 0 index:
		cellNum = ( i - a ) * cells.length + j;
		// do something with cell here
	}
}

-- 
Denis McMahon, denismfmcmahon@gmail.com

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Prob with IE8 and getElementsByName() "Mel Smith" <med_cutout_syntel@aol.com> - 2013-06-11 15:52 -0600
  Re: Prob with IE8 and getElementsByName() Andrew Poulos <ap_prog@hotmail.com> - 2013-06-12 11:01 +1000
  Re: Prob with IE8 and getElementsByName() Martin Honnen <mahotrash@yahoo.de> - 2013-06-12 14:11 +0200
    Re: Prob with IE8 and getElementsByName() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-06-12 16:33 +0200
    Re: Prob with IE8 and getElementsByName() "Mel Smith" <med_cutout_syntel@aol.com> - 2013-06-12 08:37 -0600
      Re: Prob with IE8 and getElementsByName() Andrew Poulos <ap_prog@hotmail.com> - 2013-06-13 08:36 +1000
        Re: Prob with IE8 and getElementsByName() "Mel Smith" <med_cutout_syntel@aol.com> - 2013-06-12 16:59 -0600
      Re: Prob with IE8 and getElementsByName() Denis McMahon <denismfmcmahon@gmail.com> - 2013-06-13 09:30 +0000
        Re: Prob with IE8 and getElementsByName() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-06-13 13:12 +0200
        Re: Prob with IE8 and getElementsByName() "Mel Smith" <med_cutout_syntel@aol.com> - 2013-06-13 08:41 -0600
          Re: Prob with IE8 and getElementsByName() "Mel Smith" <med_cutout_syntel@aol.com> - 2013-06-13 14:12 -0600
            Re: Prob with IE8 and getElementsByName() "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-06-13 23:43 +0200
              Re: Prob with IE8 and getElementsByName() Tim Streater <timstreater@greenbee.net> - 2013-06-13 23:19 +0100
                Re: Prob with IE8 and getElementsByName() "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-06-14 00:34 +0200
                Re: Prob with IE8 and getElementsByName() Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-06-14 10:17 +0200
    Re: Prob with IE8 and getElementsByName() "Jukka K. Korpela" <jkorpela@cs.tut.fi> - 2013-06-13 08:24 +0300
  Re: Prob with IE8 and getElementsByName() Dr J R Stockton <reply1300@merlyn.demon.co.uk.invalid> - 2013-06-12 19:01 +0100

csiph-web