src/main/java/com/machinezoo/pushmode/dom/DomElement.java
public DomElement id(String id) {
		touch();
		if (id == null)
			this.id = null;
		else if (id.isEmpty())
			this.id = null;
		else
			this.id = id;
		return this;
	}
/**
	 * Sets element's ID.
	 * Once set, the ID is available from {@link #id()} method.
	 * <p>
	 * Element ID is serialized as the {@code id} attribute in HTML.
	 * It must therefore fulfill criteria for proper element ID in HTML, which most importantly means the ID should be unique in the document.
	 * PushMode however doesn't check whether the ID is really unique and instead takes some steps to tolerate accidental duplicates.
	 * This method only checks for an empty string and treats it as {@code null}.
	 * <p>
	 * Element ID has a special meaning in PushMode.
	 * Listeners require the element to have an ID. Listeners on ID-less elements are ignored.
	 * DOM diffing algorithm also uses ID when {@link #key()} is not set.
	 * <p>
	 * Internally, ID gets its own field in the class unlike other attributes.
	 * This makes access to ID much faster than access to other attributes.
	 * 
	 * @param id
	 *            new element ID
	 * @return {@code this}
	 * @throws IllegalStateException
	 *             if element is frozen
	 */
Sets element's ID.
Once set, the ID is available from  #id() method.

Element ID is serialized as the  id attribute in HTML.
It must therefore fulfill criteria for proper element ID in HTML, which most importantly means the ID should be unique in the document.
PushMode however doesn't check whether the ID is really unique and instead takes some steps to tolerate accidental duplicates.
This method only checks for an empty string and treats it as  null.

Element ID has a special meaning in PushMode.
Listeners require the element to have an ID. Listeners on ID-less elements are ignored.
DOM diffing algorithm also uses ID when  #key() is not set.

Internally, ID gets its own field in the class unlike other attributes.
This makes access to ID much faster than access to other attributes.

@param id
new element ID
@return  this
@throws IllegalStateException
if element is frozen
Sets element ' s ID . Once set the ID is available from #id () method . Element ID is serialized as the id attribute in HTML . It must therefore fulfill criteria for proper element ID in HTML which most importantly means the ID should be unique in the document . PushMode however doesn ' t check whether the ID is really unique and instead takes some steps to tolerate accidental duplicates . This method only checks for an empty string and treats it as null . Element ID has a special meaning in PushMode . Listeners require the element to have an ID . Listeners on ID - less elements are ignored . DOM diffing algorithm also uses ID when #key () is not set . Internally ID gets its own field in the class unlike other attributes . This makes access to ID much faster than access to other attributes . @param id new element ID @return this @throws IllegalStateException if element is frozen
public DomElement id(String id) {
		touch();
		if (id == null)
			this.id = null;
		else if (id.isEmpty())
			this.id = null;
		else
			this.id = id;
		return this;
	}
public DomElement id ( String id ) { touch ( ) ; if ( id == null ) this . id = null ; else if ( id . isEmpty ( ) ) this . id = null ; else this . id = id ; return this ; }
Sets element's ID.
Sets element ' s ID .