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


Groups > comp.lang.javascript > #31722

Re: How to reference an updated document object and to have all of its elements and associated values if any as well?

Newsgroups comp.lang.javascript
Date 2016-11-14 12:48 -0800
References <62558672-b8d4-495a-8ccf-4bce9399d64d@googlegroups.com> <o0c7sb$lr4$1@news.albasani.net> <2029592.ElGaqSPkdT@PointedEars.de>
Message-ID <00a7d52d-bd56-4582-a162-9225f8fe2630@googlegroups.com> (permalink)
Subject Re: How to reference an updated document object and to have all of its elements and associated values if any as well?
From justaguy <lichunshen84@gmail.com>

Show all headers | View raw


On Monday, November 14, 2016 at 11:26:17 AM UTC-5, Thomas 'PointedEars' Lahn wrote:
> Martin Honnen wrote:
> 
> > On 13.11.2016 19:01, justaguy wrote:
> >> Now, how do I reference / retrieve all the elements and associated values
> >> if any for this document?
> > 
> > Well, the
> >    document
> > object contains all elements and associated values. It is not clear in
> > which form you want to "retrieve" the elements or values.
> > 
> >> document.all was for old IE browser only, hence, irrelevant for other
> >> modern browsers.
> > 
> > document.getElementsByTagName('*') gives you all elements as an
> > HTMLCollection , see
> > https://dom.spec.whatwg.org/#concept-getelementsbytagname/
> 
> This URI does not work here inasfar as that it does not navigate to the 
> section in question.  The URI that does it is currently
> 
> <https://dom.spec.whatwg.org/#dom-document-getelementsbytagname>
> 
> Your URI might have worked before just as mine does now, but that is 
> precisely the unreliable behavior that you can expect with a "Living 
> Standard", a resource that does not remotely meet the criteria for a 
> standard.
> 
> WHATWG HTML is not the normative resource; instead, it is 
> 
> <https://www.w3.org/TR/2015/REC-dom-20151119/#dom-document-getelementsbytagname>
> 
> as referred to by
> 
> <https://www.w3.org/TR/2016/REC-html51-20161101/infrastructure.html#common-dom-interfaces> pp.
> 
> Although in both cases the return value is specified as an object that 
> implements the HTMLCollection interface, this is actually compatibly 
> implemented only as an object implementing the NodeList interface.  By 
> contrast to an HTMLCollection, using the bracket property accessor syntax 
> with non-numeric string parameter, or calling the referred object’s 
> namedItem() method with an argument of that form, on the return value, does 
> not always yield useful results.
> 
> In any case, the problem with this approach is that one would have to 
> iterate over a lot of irrelevant elements as not all elements can have 
> values.  If the question is understood literally, then “value” means the 
> “value” attribute, and not all elements have it.
> 
> In order to avoid this, there are several alternatives, including:
> 
> - calling document.getElementsByTagName() with a specific element type name 
>   as argument, maybe several times, and if necessary, aggregate the results
>   in an array;
> 
> - calling document.querySelectorAll() as provided by implementing the 
>   Selectors API with a CSS selector that includes all the relevant element
>   type names;
> 
> - calling document.evaluate() as provided by implementing DOM Level 3 XPath
>   to retrieve references to the relevant element objects and/or their
>   “values” directly (according to MDN, supported by all major browsers 
>   except Internet Explorer).
> 
> However, the OP appears to have an X–Y problem; they appear to have the 
> misconception that they need to retrieve the values of all elements to 
> achieve their goal.  That is not so.
> 
> For example, one can determine which elements the user has added by 
> observing mutations to the document tree:
> 
> <https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver>
> 
> Also, the original code is invalid HTML, and if that is corrected, it will 
> still not work as the function is being referred to, but not called.
> 

Martin Honnen's solution (document.getElementsByTagName('*')) works fine with me, thank you all.

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


Thread

How to reference an updated document object and to have all of its elements and associated values if any as well? justaguy <lichunshen84@gmail.com> - 2016-11-13 10:01 -0800
  Re: How to reference an updated document object and to have all of its elements and associated values if any as well? Martin Honnen <martin.honnen@gmx.de> - 2016-11-14 12:40 +0100
    Re: How to reference an updated document object and to have all of its elements and associated values if any as well? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2016-11-14 14:16 +0100
    Re: How to reference an updated document object and to have all of its elements and associated values if any as well? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-11-14 17:26 +0100
      Re: How to reference an updated document object and to have all of its elements and associated values if any as well? justaguy <lichunshen84@gmail.com> - 2016-11-14 12:48 -0800
  Re: How to reference an updated document object and to have all of its elements and associated values if any as well? JJ <jj4public@vfemail.net> - 2016-11-14 18:51 +0700

csiph-web