|
|
@ -58,9 +58,6 @@ var DOMListFactory = function(selector, context) { |
|
|
|
var r = new DOMList(); |
|
|
|
if ( typeof selector === 'string' ) { |
|
|
|
selector = selector.trim(); |
|
|
|
if ( selector.charAt(0) === '<' ) { |
|
|
|
return addHTMLToList(r, selector); |
|
|
|
} |
|
|
|
if ( selector !== '' ) { |
|
|
|
return addSelectorToList(r, selector, context); |
|
|
|
} |
|
|
@ -85,6 +82,16 @@ DOMListFactory.onLoad = function(callback) { |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
DOMListFactory.nodeFromId = function(id) { |
|
|
|
return document.getElementById(id); |
|
|
|
}; |
|
|
|
|
|
|
|
DOMListFactory.nodeFromSelector = function(selector) { |
|
|
|
return document.querySelector(selector); |
|
|
|
}; |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
var addNodeToList = function(list, node) { |
|
|
|
if ( node ) { |
|
|
|
list.nodes.push(node); |
|
|
@ -125,51 +132,6 @@ var addSelectorToList = function(list, selector, context) { |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
var pTagOfChildTag = { |
|
|
|
'tr': 'table', |
|
|
|
'option': 'select' |
|
|
|
}; |
|
|
|
|
|
|
|
// TODO: documentFragment
|
|
|
|
|
|
|
|
var addHTMLToList = function(list, html) { |
|
|
|
var matches = html.match(/^<([a-z]+)/); |
|
|
|
if ( !matches || matches.length !== 2 ) { |
|
|
|
return this; |
|
|
|
} |
|
|
|
var cTag = matches[1]; |
|
|
|
var pTag = pTagOfChildTag[cTag] || 'div'; |
|
|
|
var p = document.createElement(pTag); |
|
|
|
vAPI.insertHTML(p, html); |
|
|
|
// Find real parent
|
|
|
|
var c = p.querySelector(cTag); |
|
|
|
p = c.parentNode; |
|
|
|
while ( p.firstChild ) { |
|
|
|
list.nodes.push(p.removeChild(p.firstChild)); |
|
|
|
} |
|
|
|
return list; |
|
|
|
}; |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
var isChildOf = function(child, parent) { |
|
|
|
return child !== null && parent !== null && child.parentNode === parent; |
|
|
|
}; |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
var isDescendantOf = function(descendant, ancestor) { |
|
|
|
while ( descendant.parentNode !== null ) { |
|
|
|
if ( descendant.parentNode === ancestor ) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
descendant = descendant.parentNode; |
|
|
|
} |
|
|
|
return false; |
|
|
|
}; |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
var nodeInNodeList = function(node, nodeList) { |
|
|
|
var i = nodeList.length; |
|
|
|
while ( i-- ) { |
|
|
@ -555,8 +517,14 @@ DOMList.prototype.css = function(prop, value) { |
|
|
|
if ( value === undefined ) { |
|
|
|
return i ? this.nodes[0].style[prop] : undefined; |
|
|
|
} |
|
|
|
if ( value !== '' ) { |
|
|
|
while ( i-- ) { |
|
|
|
this.nodes[i].style.setProperty(prop, value); |
|
|
|
} |
|
|
|
return this; |
|
|
|
} |
|
|
|
while ( i-- ) { |
|
|
|
this.nodes[i].style[prop] = value; |
|
|
|
this.nodes[i].style.removeProperty(prop); |
|
|
|
} |
|
|
|
return this; |
|
|
|
}; |
|
|
|