Classes
Members
- 
    <static> context
- 
    HtmlJs context Properties:Name Type Description contextHTMLElement Current selected element of HtmlJs Examplehtml('#someContainer'); html.context; // => <div id="someContainer"></div>
- 
    <static> Ending symbol
- 
    End tag symbol 
 This method doesn't create any element but set the context HtmlJs to its parent element. You can imagine this method like ending tag in HTMLProperties:Name Type Description htmlfunction For fluent API Exampleshtml(document.body).div.attr({id: 'container'}) // render a DIV tag with id "container" .h1.text('h1 element').$ // render h1, append to #container, set the context to parent of h1 - #container .h2.text('h2 element').$ // render h2, append to #container, also set the context to parent of h2 - #containerAlternative code html(document.body).div.attr({id: '#container'}); html('#container').h1.text('h1 element'); html('#container').h2.text('h2 element');
- 
    <static> Events
- 
    Binding event to the context element. HtmlJs gives you all possible events in HTML DOM events, you can bind events with ease. The framework will handle for you cross browser binding issues. However because some events are new in HTML5, so be careful when working with them, they can't run in some older browsers. List of all available events. - Mouse events click, contextmenu, dblclick, mousedown, mouseenter, mouseleave, mousemove, mouseover, mouseout, mouseup
- Key events keydown, keypress, keyup
- Frame/object events abort, beforeunload, error, hashchange, load, resize, scroll, unload
- Form events blur, change, focus, focusin, focusout, inputting, invalid, reset, search, select, submit
- Drag events drag, dragend, dragenter, dragleave, dragover, dragstart, drop
- Clipboard events copy, cut, paste
- Print events afterprint, beforeprint
- Media events events canplay, canplaythrough, durationchange, emptied, ended, error, loadeddata, loadedmetadata, loadstart, pause, play, playing, progress, ratechange, seeked, seeking, stalled, suspend, timeupdate, volumechange, waiting
- Animation events animationend, animationiteration, animationstart
- Transition events transitionend
- Misc events message, online, offline, popstate, show, storage, toggle, wheel
- Others events copy, cut, paste
 Examplevar clickCallback = function(e, model) { console.log(model); }; html(document.body).button.text('Test click event with model') .onClick(clickCallback, {username: 'sa', password: '123456'});
- 
    <static> hr/br
- 
    Auto ending elements. Create BR/HR element and append to the current context of HtmlJs Properties:Name Type Description htmlfunction For fluent API Examplehtml(document.body) .button.text('Add new record') .br .button('Delete selected record');
- 
    <static> HTML tags
- 
    Render DOM element. Append to the html context if available, otherwise create an in-memory element without parent - All available tag names 
 'a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'datalist', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'object', 'ol', 'ptgroup', 'option', 'output', 'p', 'param', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video'
 - See:
 Properties:Name Type Description htmlfunction For fluent API 
- All available tag names 
Methods
- 
    <static> after(node)
- 
    Insert a new node after the context Parameters:Name Type Description nodeHTMLElement HTML element to prepend 
- 
    <static> append(node)
- 
    Append a new node to the context Parameters:Name Type Description nodeHTMLElement HTML element to append 
- 
    <static> attr(attrObj, val)
- 
    Set attribute for the context element Parameters:Name Type Description attrObjObject Attribute object valString | Number | Bool Value of attribute Returns:html - for fluent API - Type
- function
 Examplehtml(document.body) .a.text('Author') .attr({href: 'mailto:author@gmail.com'});
- 
    <static> before(node)
- 
    Insert a new node before the context Parameters:Name Type Description nodeHTMLElement HTML element to prepend 
- 
    <static> checkbox( [observable])
- 
    Create input tag with type is "checkbox" and append to the current context of HtmlJs. 
 If the current context is already input tag then HtmlJs won't generate again, only set its checked propertyParameters:Name Type Argument Default Description observableBoolean | html.observable <optional> 
 false Observable object represents checked state of checkbox Returns:html - For fluent API - Type
- function
 Examplehtml(document.body).checkbox(true); // ==> checked var checked = html.observable(false); html(document.body).checkbox(checked); // ==> not checked 
- 
    <static> className(className)
- 
    Set className to the context Parameters:Name Type Description classNameString | html.observable Class name to add Returns:html - For fluent API - Type
- Object
 Examplehtml(document.body).button.text('Click me') .attr('myButton') .className('btn btn-primary); console.log(document.getElementById('myButton').className); // => btn btn-primary
- 
    <static> css(cssObj [, cssValue])
- 
    Get/Set style to the context, override existing styles Parameters:Name Type Argument Description cssObjObject | String Style object or style name. cssValueString <optional> 
 Style value Returns:html - Type
- Object
 Examplehtml(document.body).button.text('Click me') .attr({id: 'myButton'}) .css({backgroundColor: '#3071a9'}); html('#myButton').css('backgroundColor'); // => #3071a9
- 
    <static> dropdown(list, selectedItem [, displayField] [, valueField])
- 
    Render SELECT element Parameters:Name Type Argument Description listArray | html.observableArray List items selectedItemObject Selected item displayFieldString <optional> 
 Display field valueFieldString <optional> 
 Value field - See:
- 
		- Working with List tutorial 
 
 Examplevar products = [ { name: 'iPhone', price: 900 }, { name: 'Samsung galaxy', price: 850 }, { name: 'Google Pixel', price: 800 }, { name: 'Google nexus', price: 750 } ], selectedItem = html.observable(this.products[0]); html(document.body).dropdown(products, selectedItem, 'name', 'name');
- 
    <static> each(model, renderer)
- 
    Render to a list of DOM from an Array or html.observableArray 
 NOTE: You have to render number of DOM elements equally for each data item, other wise the engine won't be able to add or remove item correctlyParameters:Name Type Description modelArray | html.observableArray List data to render rendererfunction Renderer. - See:
- 
		- Working with List tutorial 
 
 Returns:html object for fluent API - Type
- Object
 Examplevar smartPhoneList = ['iPhone', 'Samsung galaxy', 'Google Pixel', 'Google Nexus']; html(document.body).ul.each(smartPhoneList, function(phone, index) { html.li.text(phone); });
- 
    <static> empty()
- 
    Clear all DOM nodes within context element Examplehtml(document.body).empty(); 
- 
    <static> extend(destination, source)
- 
    Extend an object by another object's properties Parameters:Name Type Description destinationObject Destination object sourceObject Source object 
- 
    <static> find(selector)
- 
    Find a child element of the current context using a selector Parameters:Name Type Description selectorString String selector or an element 
- 
    <static> getJSON(url, data [, async])
- 
    Create shorthand for request JSON format with 'GET' method Parameters:Name Type Argument Default Description urlString Url of ajax end point dataObject Parameter to submit to server asyncBoolean <optional> 
 true Type of ajax submit, default is asynchronous 
 NOTE: Synchronous ajax request is depreciatedReturns:promise - Promise of asynchronous data - Type
- html.Promise
 Examplevar myAjax = html.getJSON('myAjaxURL', {pageIndex: "1", : pageSize "10"}, true); myAjax.done(function(data) { console.log(data); });
- 
    <static> hidden(hidden)
- 
    Hidden binding The opposite of visible binding. Parameters:Name Type Description hiddenBoolean | html.observable Indicate that the element should be hidden Returns:html - For fluent API - Type
- function
 Examplevar state = html.observable(true); html(document.body).button.text('Click me').hidden(state); state.data = false; // show the button state.data = true; // hide the button
- 
    <static> html(observableStr)
- 
    Binding HTML for an element 
 NOTE: this method is not safe to use, it could be the cause for XSS attackParameters:Name Type Description observableStrString | html.observable HTML string or observable string Returns:html - Return html for fluent API - Type
- function
 
- 
    <static> partial(url, containerSelector)
- 
    Partial loading a view, along with scripts and styles Parameters:Name Type Description urlString Partial view url containerSelectorString | Element Selector of the container which the partial view append to 
- 
    <static> postJSON(url, data [, async])
- 
    Create shorthand for request JSON format with 'POST' method Parameters:Name Type Argument Default Description urlString Url of ajax end point dataObject Parameter to submit to server asyncBoolean <optional> 
 true Type of ajax submit, default is asynchronous Returns:promise - Promise of asynchronous data - Type
- html.Promise
 Examplevar myAjax = html.postJSON('myAjaxURL', {pageIndex: "1", : pageSize "10"}, true); myAjax.done(function(data) { console.log(data); });
- 
    <static> prepend(node)
- 
    Prepend a new node to the context Parameters:Name Type Description nodeHTMLElement HTML element to prepend 
- 
    <static> serialize(rootObj [, serializer])
- 
    Serialize observable data to pure JSON. This method is for submitting data to server. Parameters:Name Type Argument Description rootObjhtml.observable | Object Observable object serializerfunction <optional> 
 Callback to handle seializing Returns:Pure JSON data - Type
- Object | Array
 
- 
    <static> text(observable)
- 
    Text binding Parameters:Name Type Description observableString | html.observable.<String> Observable object contain a string Returns:html - For fluent API - Type
- function
 
- 
    <static> trigger(eventName)
- 
    Trigger an event of a DOM element Parameters:Name Type Description eventNameString event of a DOM to trigger Returns:html - For fluent API - Type
- function
 Examplevar clickCallback = function(e, model) { console.log(model); }; html(document.body).button.text('Test click event with model') .attr({id: 'testTrigger')}.onClick(clickCallback, {username: 'sa', password: '123456'}); html('#testTrigger').trigger('click');
- 
    <static> unwrapData(observableObj)
- 
    Unwrap data from observable object Parameters:Name Type Description observableObjhtml.observable Observable object to unwrap Returns:Underlying data - Type
- Object
 
- 
    <static> unwrapNoSideEffect(data [, getNewData])
- 
    Unwrap data without notify change nor register dependency Parameters:Name Type Argument Description datahtml.observable Observable object getNewDataBoolean <optional> 
 Internal use. Get _newData or computed data Returns:underlying data - Type
- Object
 
- 
    <static> value(observable)
- 
    Value binding for HTMLElement that has value property, for example input/textarea Parameters:Name Type Description observableObject | html.observable Observable or primitive data type Returns:html - for fluent API - Type
- function
 
- 
    <static> visible(visible)
- 
    Show/hide the element based on data Parameters:Name Type Description visibleBoolean | html.observable Indicate that the element should be visible Returns:html - Type
- function
 Examplevar state = html.observable(true); html(document.body).button.text('Click me').visible(state); state.data = false; // hide the button state.data = true; // show the button