There are only a few ways for selector to find elements. Others are filter elements. An important requirement is to obtain a subset of tags whose tagname is equal to the tagname from a group of elements. For example, if the selector is in the form of # ID tag, filter is required. But what if the selector is a tag? For efficiency, each element is required to perform the tag. getelementsbytagname (TAG) operation.
In my earlier implementation, UUID technology was used to prevent duplication:
// Obtain the labeled Element Set var getelementsbytag = function (TAG, lastresult) {for (VAR I = 0, result = [], uniqresult = {}, El; El = lastresult [I ++];) {var els = el. getelementsbytagname (TAG); For (var j = 0, ELEM; ELEM = els [J ++];) {ELEM. UUID = ELEM. UUID | "dom-" + UUID ++ if (! Uniqresult [ELEM. UUID]) {result [result. Length] = uniqresult [ELEM. UUID] = ELEM ;}}; return result ;}