我有一个名为Car的JS对象,它就像一个类(有自己的方法,变量)。
我想选择带选择器的css的汽车,这将简化我的项目,例如
$('car .stopped .red')。go();
要做这样的事情,我创建了一个HTML并对其进行了解析。
但它只是给了我DOMElement,而不是我之前创建的元素。
我的问题是,有没有办法将我的car元素与DOM元素相关联?或者是否可以从DOM元素继承car元素?
我正在使用node.js,并使用了cheerio。
答案 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();
});