jldom

A DOM implementation in CoffeeScript, full CSS3 support.

npm install jldom
25 downloads in the last week
49 downloads in the last month

An implementation of the DOM in CoffeeScript/JavaScript

Intended for use in NodeJS.

I haven't checked the actual DOM compliance, but everything you need is there:

  • Full CSS3 support via NWMatcher.
  • A very tiny HTML parser.
  • DOM-compliant event binding and triggering (bubbling, cancelling, etc).
  • Coming soon: (optional) Mutation Events.

This is not a fork of jsdom.

It assumes the document is going to act like it would in a browser (e.g. it automatically gets a head and body).

No attempt has been made to support XML or Xpath or anything exotic.

Example:

document = require('jldom').createDocument()

document.body.innerHTML = "<div>Hello, World.</div>"

document.toString()
    === "<html><head/><body><div>Hello, World.</div></body></html>"

document.querySelector("div").toString()
    === "<div>Hello, World.</div>"

I built this to generate server-side HTML from a NodeJS application. Benchmarks reveal that this is a waste of time. I currently use it to unit test other javascript code that needs a reasonably well-behaved DOM to interact with.

Install:

npm install jldom

Or:

git clone git://github.com/jldailey/jldom.git
cd jldom
make
npm loves you