mozilla

Compare Revisions

NodeList

Change Revisions

Revision 365793:

Revision 365793 by Vincent on

Revision 365795:

Revision 365795 by Vincent on

Title:
NodeList
NodeList
Slug:
DOM/NodeList
DOM/NodeList
Tags:
"Gecko DOM Reference", "DOM", "DOM 3"
"Gecko DOM Reference", "DOM", "DOM 3"
Content:

Revision 365793
Revision 365795
n88/*n
89  The code can not executed properly for some reason88//The code can not executed properly for some reason
90  1. The Array.prototype's property are not enumerable,so using f89//1. The Array.prototype's property are not enumerable,so using f
>or...in loop cannot get the property>or...in loop cannot get the property
91  2. NodeList[prop] = Array.prototype[prop] this way,the property90//2. NodeList[prop] = Array.prototype[prop] this way,the property
> is added to the NodeList function, but not the instance> is added to the NodeList function, but not the instance
92     so we need to add properties to NodeList.prototype91//   so we need to add properties to NodeList.prototype
n94*/n93var _arrayProto = Array.prototype;
94var _funcList = Object.getOwnPropertyNames.call(null,Array.protot
 >ype);
95var _element;
96var _theFunc;
nn98for(var prop in _funcList){
99  _element = _funcList[prop];
100  if(_arrayProto.hasOwnProperty(_element) && typeof(_theF
 >unc) === 'function'){
101    NodeList.prototype[_element] = _theFunc;
102    console.log(_theFunc.name + ' has been added!');
103  }
104}
105 
106var links = document.getElementsByTagName('a');
107links.forEach(function(link){
108  link.style.color = '#0F0';
109});
t97    <div>t
98      var _arrayProto = Array.prototype;
99    </div>
100    <div>
101      var _funcList = Object.getOwnPropertyNames.call(null,Array.
>prototype); 
102    </div>
103    <div>
104      var _element;
105    </div>
106    <div>
107      var _theFunc;
108    </div>
109    <div>
110      &nbsp;
111    </div>
112    <div>
113      for(var prop in _funcList){
114    </div>
115    <div>
116      _element = _funcList[prop];
117    </div>
118    <div>
119      if(_arrayProto.hasOwnProperty(_element) &amp;&amp; typeof(_
>theFunc) === 'function'){ 
120    </div>
121    <div>
122      NodeList.prototype[_element] = _theFunc;
123    </div>
124    <div>
125      console.log(_theFunc.name + ' has been added!');
126    </div>
127    <div>
128      }
129    </div>
130    <div>
131      }
132    </div>
133    <div>
134      &nbsp;
135    </div>
136    <div>
137      var links = document.getElementsByTagName('a');
138    </div>
139    <div>
140      links.forEach(function(link){ // works in some browsers, th
>rows in others 
141    </div>
142    <div>
143      &nbsp;link.style.color = '#0F0';
144    </div>
145    <div>
146      });
147    </div>
148    <p>
149      /* for(prop in Array.prototype){ if(Array.prototype.hasOwnP
>roperty(prop) &amp;&amp; typeof(Array.prototype[prop]) === 'funct 
>ion') NodeList[prop] = Array.prototype[prop]; } var links = docum 
>ent.getElementsByTagName('a'); links.forEach(function(link){ // w 
>orks in some browsers, throws in others link.style.color = '#0F0' 
>; }); */ 
150    </p>

Back to History