You could use zombie.js, which has everything you need for testing. Or you could leverage jsdom (which zombie.js uses internally) to get a DOM in node.js, and execute your tests against that DOM.
I can also recommend testling, which executes tests according to your specification in all common browsers -- the code is running in actual browsers against your service.
Here's a simple example with jsdom:
var jsdom = require("jsdom");
jsdom.env(url, ["http://code.jquery.com/jquery.min.js"], function(err, window) {
// jQuery is at window.$
});
Instead of url above, you could have an HTML document, or fragment.
You can also load a page and fetch any external resources, instead of providing jQuery etc directly to jsdom:
var jsdom = require("jsdom").jsdom,
doc = jsdom(markup),
window = doc.createWindow();
// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup
Again, zombie.js uses jsdom internally and it might be a better starting point.