将DOM元素与对象相关联

时间:2013-12-14 23:52:49

标签: node.js dom jquery-selectors

我有一个名为Car的JS对象,它就像一个类(有自己的方法,变量)。

我想选择带选择器的css的汽车,这将简化我的项目,例如

$('car .stopped .red')。go();

要做这样的事情,我创建了一个HTML并对其进行了解析。

但它只是给了我DOMElement,而不是我之前创建的元素。

我的问题是,有没有办法将我的car元素与DOM元素相关联?或者是否可以从DOM元素继承car元素?

我正在使用node.js,并使用了cheerio。

1 个答案:

答案 0 :(得分:0)

从技术上讲,你可以在DOM模型中模仿对象模型,但对我而言,它看起来像是用大炮杀死一只苍蝇。

如果您将汽车存储在一个阵列中,您可以使用过滤功能轻松过滤此阵列,如下所示:

// prepare the functions
function isStopped(item) { return item.stopped; }
function isRed(item) { return item.color === 'red'; }
function go(item) { item.go(); }

// use them:
cars.filter(isStopped).filter(isRed).forEach(go);

更新:以防您真正需要将对象绑定到DOM元素:您可以将对象保存到元素属性,然后访问此属性或将唯一对象标识符保存到“data-”属性。例如:

var document = parse('... <car data-id="10" class="red"></car> ...');

$('car .red', document).each(function () {
    cars[parseInt(this.getAttribute('data-id'))].go();
});