Solved

array elements getElementById

Posted on 2006-10-26
6
8,235 Views
Last Modified: 2013-11-19
Okay maybe this is easy and I'm just entirely missing the concept, but since I urgently need it and can't figure it out, it's a 500.

I know that we can do this :

document.frmName.eleName[#].value;

but is there a way to get this with getElementById?

I have an array of elements named HR for regular hours, but i'd like to get their values through a loop to calculate totals.

I tried doing document.getElementById('HR')[#].value but it gives an error.

Thanks!
0
Comment
Question by:arvanhalleorg
6 Comments
 
LVL 54

Expert Comment

by:b0lsc0tt
ID: 17815029
arvanhalleorg,

Since a tag's id should be unique on that page getElementById just returns that tag.  It would not work in this case and your page may have other issues with duplicating ids.  I recommend that you look at getElementsByTagName.  That will return a "collection" that you could loop through to find the exact ones you want or, if they are the only ones with that tag, then it will not need the loop.

Let me know if you have any questions or need more information.  If you need more details then please provide the relevant code you are using.

b0lsc0tt
0
 
LVL 63

Expert Comment

by:Zvonko
ID: 17815162
The method getElementById() will return only the First element with that id.
But what is the problem to get first the collection of all elements with the given name?

var elemColl = document.frmName.eleName;

Then is the twentyfirst element accessed like this:

elemColl[21].value = "some value";


0
 
LVL 41

Expert Comment

by:HonorGod
ID: 17816520
You might also consider using

  var tables = document.getElementsByTagName( 'table' );

This will be a collection (array) of references to every table on your page, the first of which could be manipulated using something like:

  var table = tables[ 0 ];

Now that you have a reference to a particular table, you can locate the individual 'tr' elements in that table using:

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

Since the method was executed using the specific "table" reference, the result will be a collection of the row references,
but only for this specific table.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 2

Author Comment

by:arvanhalleorg
ID: 17816544
well i wanted to use document.form.element.yadayada but can I do this without the document.form part? I refuse to put a form on my page cause frankly i'm not going to submit the thing, it's only the javascript that is taking the data and using xmlHttp.Send to get the asp to make the changes in the background. I was wanting to use getElementById for that reason, cause it doesnt ask me for the form.

So, does the following work?

HR[#].value;

or do I absolutely have to use the full syntax?
0
 
LVL 3

Accepted Solution

by:
jabaswavika earned 500 total points
ID: 17817601
You should use document.getElementsByName method. This would give you all the elements with that name

Use (document.getElementsByName('HR'))[#].value
    to get the value of your HR element. Note that the NAME, I repeat the NAME should be "HR". rather than the tagname or the id for the method to work.

See the test code below

<html>
<body>
<input type="text" name="test"/><br/>
<input type="text" name="test"/><br/>
<input type="text" name="test"/><br/>
<input type="button" onClick="testing();">
<script>
function testing(){
alert((document.getElementsByName("test"))[0].value);
alert((document.getElementsByName("test"))[1].value);
alert((document.getElementsByName("test"))[2].value);
}
</script>
</body>
</html>
</script>
</body>
</html>
0
 
LVL 2

Author Comment

by:arvanhalleorg
ID: 17818147
Sweet! That's perfect. :D Thank you!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now