Ticket #7848: update2.patch
| File update2.patch, 2.7 kB (added by haraldmartin, 1 year ago) |
|---|
-
src/dom.js
old new 151 151 descendants: function(element) { 152 152 return $A($(element).getElementsByTagName('*')).each(Element.extend); 153 153 }, 154 155 immediateDescendants: function(element) {156 if (!(element = $(element).firstChild)) return [];157 while (element && element.nodeType != 1) element = element.nextSibling;158 if (element) return [element].concat($(element).nextSiblings());159 return [];160 },161 154 162 155 previousSiblings: function(element) { 163 156 return $(element).recursivelyCollect('previousSibling'); … … 179 172 }, 180 173 181 174 up: function(element, expression, index) { 175 if (arguments.length == 1) return $(element.parentNode); 182 176 var ancestors = $(element).ancestors(); 183 177 return expression ? Selector.findElement(ancestors, expression, index) : 184 178 ancestors[index || 0]; 185 179 }, 186 187 down: function(element, expression, index) {188 var descendants = $(element).descendants();189 return expression ? Selector.findElement(descendants, expression, index) :190 descendants[index || 0];191 },192 180 193 181 previous: function(element, expression, index) { 182 if (arguments.length == 1) 183 return $(Selector.handlers.previousElementSibling(element)); 194 184 var previousSiblings = $(element).previousSiblings(); 195 185 return expression ? Selector.findElement(previousSiblings, expression, index) : 196 186 previousSiblings[index || 0]; 197 187 }, 198 188 199 189 next: function(element, expression, index) { 190 if (arguments.length == 1) 191 return $(Selector.handlers.nextElementSibling(element)); 200 192 var nextSiblings = $(element).nextSiblings(); 201 193 return expression ? Selector.findElement(nextSiblings, expression, index) : 202 194 nextSiblings[index || 0]; … … 412 404 } 413 405 }; 414 406 407 Object.extend(Element.Methods, (function() { 408 function findChildNodes(element, single) { 409 var returning = single ? null : []; 410 if (!(element = $(element).firstChild)) return returning; 411 while (element && element.nodeType != 1) element = element.nextSibling; 412 if (element) return single ? element : [element].concat($(element).nextSiblings()); 413 return returning; 414 } 415 416 return { 417 immediateDescendants: function(element) { 418 return findChildNodes(element); 419 }, 420 421 down: function(element, expression, index) { 422 if (arguments.length == 1) return findChildNodes(element, true); 423 var descendants = $(element).descendants(); 424 return expression ? Selector.findElement(descendants, expression, index) : 425 descendants[index || 0]; 426 } 427 } 428 })()); 429 415 430 Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf}); 416 431 417 432 if (Prototype.Browser.Opera) {