123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730 |
- define("dojo/NodeList-manipulate", ["./query", "./_base/lang", "./_base/array", "./dom-construct", "./NodeList-dom"], function(dquery, lang, array, construct) {
-
-
-
-
- var NodeList = dquery.NodeList;
- function getText(/*DOMNode*/node){
-
-
-
-
-
- var text = "", ch = node.childNodes;
- for(var i = 0, n; n = ch[i]; i++){
-
- if(n.nodeType != 8){
- if(n.nodeType == 1){
- text += getText(n);
- }else{
- text += n.nodeValue;
- }
- }
- }
- return text;
- }
- function getWrapInsertion(/*DOMNode*/node){
-
-
-
- while(node.childNodes[0] && node.childNodes[0].nodeType == 1){
- node = node.childNodes[0];
- }
- return node;
- }
- function makeWrapNode(/*DOMNode||String*/html, /*DOMNode*/refNode){
-
-
- if(typeof html == "string"){
- html = construct.toDom(html, (refNode && refNode.ownerDocument));
- if(html.nodeType == 11){
-
- html = html.childNodes[0];
- }
- }else if(html.nodeType == 1 && html.parentNode){
-
- html = html.cloneNode(false);
- }
- return html;
- }
- lang.extend(NodeList, {
- _placeMultiple: function(/*String||Node||NodeList*/query, /*String*/position){
-
-
-
-
- var nl2 = typeof query == "string" || query.nodeType ? dquery(query) : query;
- var toAdd = [];
- for(var i = 0; i < nl2.length; i++){
-
- var refNode = nl2[i];
- var length = this.length;
- for(var j = length - 1, item; item = this[j]; j--){
- if(i > 0){
-
-
-
- item = this._cloneNode(item);
- toAdd.unshift(item);
- }
- if(j == length - 1){
- construct.place(item, refNode, position);
- }else{
- refNode.parentNode.insertBefore(item, refNode);
- }
- refNode = item;
- }
- }
- if(toAdd.length){
-
-
- toAdd.unshift(0);
- toAdd.unshift(this.length - 1);
- Array.prototype.splice.apply(this, toAdd);
- }
- return this;
- },
- innerHTML: function(/*String?||DOMNode?|NodeList?*/value){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(arguments.length){
- return this.addContent(value, "only");
- }else{
- return this[0].innerHTML;
- }
- },
-
- text: function(/*String*/value){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(arguments.length){
- for(var i = 0, node; node = this[i]; i++){
- if(node.nodeType == 1){
- construct.empty(node);
- node.appendChild(node.ownerDocument.createTextNode(value));
- }
- }
- return this;
- }else{
- var result = "";
- for(i = 0; node = this[i]; i++){
- result += getText(node);
- }
- return result;
- }
- },
- val: function(/*String||Array*/value){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(arguments.length){
- var isArray = lang.isArray(value);
- for(var index = 0, node; node = this[index]; index++){
- var name = node.nodeName.toUpperCase();
- var type = node.type;
- var newValue = isArray ? value[index] : value;
- if(name == "SELECT"){
- var opts = node.options;
- for(var i = 0; i < opts.length; i++){
- var opt = opts[i];
- if(node.multiple){
- opt.selected = (array.indexOf(value, opt.value) != -1);
- }else{
- opt.selected = (opt.value == newValue);
- }
- }
- }else if(type == "checkbox" || type == "radio"){
- node.checked = (node.value == newValue);
- }else{
- node.value = newValue;
- }
- }
- return this;
- }else{
-
- node = this[0];
- if(!node || node.nodeType != 1){
- return undefined;
- }
- value = node.value || "";
- if(node.nodeName.toUpperCase() == "SELECT" && node.multiple){
-
- value = [];
-
- opts = node.options;
-
- for(i = 0; i < opts.length; i++){
-
- opt = opts[i];
- if(opt.selected){
- value.push(opt.value);
- }
- }
- if(!value.length){
- value = null;
- }
- }
- return value;
- }
- },
- append: function(/*String||DOMNode||NodeList*/content){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this.addContent(content, "last");
- },
- appendTo: function(/*String*/query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this._placeMultiple(query, "last");
- },
- prepend: function(/*String||DOMNode||NodeList*/content){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this.addContent(content, "first");
- },
- prependTo: function(/*String*/query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this._placeMultiple(query, "first");
- },
- after: function(/*String||Element||NodeList*/content){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this.addContent(content, "after");
- },
- insertAfter: function(/*String*/query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this._placeMultiple(query, "after");
- },
- before: function(/*String||DOMNode||NodeList*/content){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this.addContent(content, "before");
- },
- insertBefore: function(/*String*/query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- return this._placeMultiple(query, "before");
- },
-
- remove: NodeList.prototype.orphan,
- wrap: function(/*String||DOMNode*/html){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(this[0]){
- html = makeWrapNode(html, this[0]);
-
- for(var i = 0, node; node = this[i]; i++){
-
-
-
- var clone = this._cloneNode(html);
- if(node.parentNode){
- node.parentNode.replaceChild(clone, node);
- }
-
- var insertion = getWrapInsertion(clone);
- insertion.appendChild(node);
- }
- }
- return this;
- },
- wrapAll: function(/*String||DOMNode*/html){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(this[0]){
- html = makeWrapNode(html, this[0]);
-
- this[0].parentNode.replaceChild(html, this[0]);
-
-
- var insertion = getWrapInsertion(html);
- for(var i = 0, node; node = this[i]; i++){
- insertion.appendChild(node);
- }
- }
- return this;
- },
- wrapInner: function(/*String||DOMNode*/html){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(this[0]){
- html = makeWrapNode(html, this[0]);
- for(var i = 0; i < this.length; i++){
-
-
-
- var clone = this._cloneNode(html);
-
-
- this._wrap(lang._toArray(this[i].childNodes), null, this._NodeListCtor).wrapAll(clone);
- }
- }
- return this;
- },
- replaceWith: function(/*String||DOMNode||NodeList*/content){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- content = this._normalize(content, this[0]);
- for(var i = 0, node; node = this[i]; i++){
- this._place(content, node, "before", i > 0);
- node.parentNode.removeChild(node);
- }
- return this;
- },
- replaceAll: function(/*String*/query){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var nl = dquery(query);
- var content = this._normalize(this, this[0]);
- for(var i = 0, node; node = nl[i]; i++){
- this._place(content, node, "before", i > 0);
- node.parentNode.removeChild(node);
- }
- return this;
- },
- clone: function(){
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var ary = [];
- for(var i = 0; i < this.length; i++){
- ary.push(this._cloneNode(this[i]));
- }
- return this._wrap(ary, this, this._NodeListCtor);
- }
- });
-
- if(!NodeList.prototype.html){
- NodeList.prototype.html = NodeList.prototype.innerHTML;
- }
- return NodeList;
- });
|