DOM4 NodeList रों iterable बनाता है:क्या HTMLCollections को ... Symbol (iter.iterator) के साथ पुनरावृत्त किया जा सकता है?
interface NodeList {
getter Node ? item (unsigned long index);
readonly attribute unsigned long length ;
iterable< Node >;
};
WebIDL के अनुसार, इस का मतलब है
वस्तुओं एक अंतरफलक है कि iterable समर्थन से अधिक दोहराया जा रहा है मूल्यों का एक दृश्य प्राप्त करने के लिए होने के लिए घोषित किया जाता है को लागू करने।
नोट: ECMAScript भाषा में बंधन, एक अंतरफलक है कि है iterable "प्रविष्टियां" होगा, "foreach", "कुंजी", "मूल्यों" और उसके interface prototype object पर @@iterator गुण। ,
for (var el of document.querySelectorAll(selector)) ...
मैंने देखा एक ही HTMLCollections के लिए काम करने लगता है दोनों फ़ायरफ़ॉक्स और क्रोम पर:
तो निम्नलिखित संभव है
for (var el of document.getElementsByTagName(tag)) ...
वास्तव में, मैं
मिलHTMLCollection.prototype[Symbol.iterator] === [][Symbol.iterator]; // true
हालांकि, HTMLCollection नहीं है iterable के रूप में परिभाषित:
interface HTMLCollection {
readonly attribute unsigned long length ;
getter Element ? item (unsigned long index);
getter Element ? namedItem (DOMString name);
};
मैं भी WHATWG DOM spec की जाँच की और यह iterable न नहीं है।
फिर, यह व्यवहार मानक है या नहीं? HTMLCollection
प्रोटोटाइप में @@iterator
होना चाहिए?
http://stackoverflow.com/a/31574921/2813224 – zer00ne