0
1
Fork 0
hedera-web-mindshore/js/vn/node.js

113 lines
2.1 KiB
JavaScript

module.exports =
{
/**
* Removes all node childs.
*
* @param {Node} node The HTML Node
*/
removeChilds: function (node)
{
var childs = node.childNodes;
if (childs)
while (childs.length > 0)
node.removeChild (childs[0]);
}
/**
* Removes a node from the document.
*
* @param {Node} node The HTML Node
*/
,remove: function (node)
{
if (node.parentNode)
node.parentNode.removeChild (node);
}
/**
* Replaces the node child/s with another one.
*
* @param {Node} node The HTML Node
* @param {Node} child The new child or %null to set an empty node
*/
,setChild: function (node, child)
{
this.removeChilds (node);
if (child)
node.appendChild (child);
}
/**
* Replaces the node text/childs with text.
*
* @param {Node} node The HTML Node
* @param {Node} child The new node text or %null for no text
*/
,setText: function (node, text)
{
Vn.Node.removeChilds (node);
if (text)
node.appendChild (
node.ownerDocument.createTextNode (text));
}
/**
* Adds a class to the node CSS classes. Note that this
* function doesn't check if the node already has the class.
*
* @param {Node} node The HTML Node
* @param {String} className The CSS class name
*/
,addClass: function (node, className)
{
node.className = className +' '+ node.className;
}
/**
* Removes a class from the node CSS classes. This functions
* removes all ocurrences of the class from the node.
*
* @param {Node} node The HTML Node
* @param {String} className The CSS class name
*/
,removeClass: function (node, className)
{
var index = 0;
var found = false;
var classes = node.className.split (' ');
while ((index = classes.indexOf (className, index)) != -1)
{
classes.splice (index, 1);
found = true;
}
if (found)
node.className = classes.join (' ');
}
/**
* Hides the node from the document.
*
* @param {Node} node The HTML Node
*/
,hide: function (node)
{
node.style.display = 'none';
}
/**
* Shows a hidden node.
*
* @param {Node} node The hidden HTML Node
*/
,show: function (node)
{
node.style.display = 'block';
}
};