473,406 Members | 2,956 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

accessing html collections

When getting different elements out of an array in JS, i know
array.item(0) and array[0] both return the 0th element. My question,
will this work in any instance?

Dec 7 '05 #1
6 2360
mu****@gmail.com said the following on 12/7/2005 8:35 AM:
When getting different elements out of an array in JS, i know
array.item(0) and array[0] both return the 0th element. My question,
will this work in any instance?


Only in IE. [] is for Arrays. () is for function calls. IE makes () for
whatever it wants to use them for. Use [].

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Dec 7 '05 #2
VK

mu****@gmail.com wrote:
When getting different elements out of an array in JS, i know
array.item(0) and array[0] both return the 0th element. My question,
will this work in any instance?


There is not item() method in Array object and myArray.item(0) will
lead to an error "Object doesn't support this property or method".

HTMLCollection (or simply Collection) is a far relative of Array but it
is not Array (neither it's a Hashtable).

You should read through
<http://www.geocities.com/schools_ring/ArrayAndHash.html> for a clearer
picture.

Dec 7 '05 #3
So if i'm parsing through the DOM, and i have some parents and i access
it's children:

object.childNodes

I should access the children via [0] and not item(0) ?

example: document.getElementById('foo').childNodes[0] as opposed to
document.getElementById('foo').childNodes.item(0)

I had always used the [] to access array elements in JS until i
starting writing this program that has to parse through an xml dom. The
site that i read up on that topic used to item() method so, naturally,
i used it as well. But i'm happy to change back to using brackets. less
typing :)

Dec 7 '05 #4
VK

mu****@gmail.com wrote:
So if i'm parsing through the DOM, and i have some parents and i access
it's children:

object.childNodes

I should access the children via [0] and not item(0) ?

example: document.getElementById('foo').childNodes[0] as opposed to
document.getElementById('foo').childNodes.item(0)

I had always used the [] to access array elements in JS until i
starting writing this program that has to parse through an xml dom. The
site that i read up on that topic used to item() method so, naturally,
i used it as well. But i'm happy to change back to using brackets. less
typing :)


item() is Microsoft method, maybe someone else accepted it either, but
the most universal way is collection[i]

Some IE-specific collections are locked for conventional use: you have
to wrap them into Microsoft Enumerator object first. These are for
example file/folder collections returned by FileSystemObject. But in
regular DOM brackets are more reliable in all curcumstances.

Dec 8 '05 #5
VK wrote:
mu****@gmail.com wrote:
When getting different elements out of an array in JS, i know
array.item(0) and array[0] both return the 0th element. My question,
will this work in any instance?
There is not item() method in Array object and myArray.item(0) will
lead to an error "Object doesn't support this property or method".

HTMLCollection (or simply Collection) is a far relative of Array but
it is not Array (neither it's a Hashtable).


Whether that is true or not depends on what you consider a Hashtable.

Elements of HTMLCollections (where there is no Collection interface defined
or used in W3C DOM Level 2+) can be accessed by alphanumeric indexes, where
in ECMAScript implementations this feature is realized through standard
property accessor syntax, as with any other object; the difference is that
adding or removing one element from the collection results in the
recalculation of the assigned numeric indexes of each element, and that
modifying the value of an element accessed through an alphanumeric index
immediately immediately affects subsequent accesses to that element through
its numeric index and vice-versa.
You should read through
<http://www.geocities.com/schools_ring/ArrayAndHash.html> for a clearer
picture.


No, you should not. That document is filled with VK's misconceptions about
Array objects especially and the used programming languages in general.

Search this group for "property accessor" and "array" for a clearer picture
of what really happens.
PointedEars
Dec 8 '05 #6
VK wrote:
mu****@gmail.com wrote:
So if i'm parsing through the DOM, and i have some parents and i access
it's children:

object.childNodes

I should access the children via [0] and not item(0) ?
It is virtually the same in an HTML 4.01/XHTML 1.0 context.
Whether or not the former should be used depends on the context.
example: document.getElementById('foo').childNodes[0] as opposed to
document.getElementById('foo').childNodes.item(0)

I had always used the [] to access array elements in JS until i
starting writing this program that has to parse through an xml dom.
The XML DOM is not DOM Level 2 _HTML_. The property accessor method is
defined for that DOM which applies to HTML 4.01 and XHTML 1.0 documents
only.
The site that i read up on that topic used to item() method so,
naturally, i used it as well. But i'm happy to change back to using
brackets. less typing :)
item() is Microsoft method, maybe someone else accepted it either,


Wrong. item() as used here is a method of DOM Level 2 HTML's HTMLCollection
interface. Using the property accessor syntax with a numeric parameter is
the same as calling this method:

<URL:http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75708506>
<URL:http://www.w3.org/TR/DOM-Level-2-HTML/ecmascript-binding.html>
but the most universal way is collection[i]
What is to be noted is that access methods of the W3C DOM tend to be poorly
implemented [ref. Element::setAttribute()], therefore the property accessor
syntax /may be/ the more reliable one, the _proper_ context provided (see
above). It also is less error-prone _there_ because property accessor
syntax is a feature of the programming language, while a method of DOM
objects is a feature of the DOM -- the method call fails with a
ReferenceError if the method is not supported, the property accessor syntax
will not (unless that expression is used untested as base reference for
another property access).
Some IE-specific collections are locked for conventional use: you have
to wrap them into Microsoft Enumerator object first. These are for
example file/folder collections returned by FileSystemObject. But in
regular DOM brackets are more reliable in all curcumstances.


You are confusing languages (here: JScript, VBScript) and AOM/DOM. Again.
PointedEars
Dec 8 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: David D. | last post by:
I want to be able to access cells within an HTML table, via computed row number and column number. I was considering using oTableID.children and oTR.children arrays. My question is what...
15
by: Christopher Benson-Manica | last post by:
When are named elements written with script accessible to script? <html><head><script type="text/javascript"> function ready() { alert( document.getElementsByName("div").length ); }...
6
by: Chris Styles | last post by:
Dear All, I've been using some code to verify form data quite happily, but i've recently changed the way my form is structured, and I can't get it to work now. Originally : The form is...
2
by: George W. | last post by:
In perl I'm used to using hashtables of arrays and accessing a particular element like this: $HoA{flintstones} Simple as that. How do I access and update values of arrays stored in my hashtable...
3
by: AdamM | last post by:
Hi all, When I run my VbScript, I get the error: "ActiveX component can't create object: 'getobject'. Error 800A01AD". Any ideas what I did wrong? Here's my VBScript: dim o set...
6
by: Chris Fink | last post by:
Does anyone know it is possible to include a small image(.gif .jpeg) within a <SELECT><option> so that the user would see the option text as well as a little image(icon) in the option? I know this...
7
by: hummh | last post by:
Hello out there, I´m making my first steps with ASP.NET 2.0 and have he following problem: I´ve implemented a Web User Control that sits in the root of my ASP.NET Website. I want to use the...
5
by: Siva | last post by:
Hello I have a dropdownlist inside the gridview as a template column defined as follows: <asp:TemplateField HeaderText="Choose Location"> <ItemTemplate> <asp:DropDownList ID="ddlChooseLoc"...
2
by: newscorrespondent | last post by:
I have a list declared: public System.Collections.Generic.SortedList<int, System.Collections.Generic.List<MTGTracer ActiveList = new SortedList<int,List<MTGTracer>>(); The key is an integer...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.