Fluent HTML Tag Builder

tangmai 9年前

来自: https://github.com/rwhitmire/tag-builder

tag-builder

Fluent html tag building library.

Install

npm install --save tag-builder

Examples

const assert = require('assert')  const TagBuilder = require('tag-builder')    const div = new TagBuilder('div')  const html = div.text('hello world').toString()    assert.equal(html, '<div>hello world</div>')
const html = TagBuilder    .create('input')    .attr({      'type': 'password',      'name': 'password'    })    .addClass('form-control')    .toString()    assert.equal(html, '<input type="password" name="password" class="form-control">')
const ul = TagBuilder.create('ul')  const li1 = TagBuilder.create('li').text('1')  const li2 = TagBuilder.create('li').text('2')    ul.appendHtml(li1)  ul.appendHtml(li2)    const html = ul.toString()  assert.equal(html, '<ul><li>1</li><li>2</li></ul>')

Seetests for more examples.

API

All methods except toString() return a TagBuilder instance and are chainable.

create(tagName: string)

Returns a TagBuilder instance.

html(html: any)

Sets innerHTML of the element. You may pass either a string or TagBuilder instance to this method.

appendHtml(html: any)

Appends provided html to inner content. You may pass either a string or TagBuilder instance to this method.

text(text: string)

Sets html encoded innerText of the element.

appendText(text: string)

Appends html encoded text to inner content.

attr(attributes: object)

Merges attributes hash onto the tag.

addClass(className: string)

Merges className onto the tag.

toString()

Returns html string.