【问题标题】:Assoc DOM elements with objects将 DOM 元素与对象关联
【发布时间】:2014-01-02 14:05:21
【问题描述】:

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

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

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

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

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

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

我用 node.js 做这个,并使用了cheerio。

【问题讨论】:

    标签: node.js dom jquery-selectors


    【解决方案1】:

    从技术上讲,您可以在 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();
    });
    

    【讨论】:

      猜你喜欢
      • 2013-09-06
      • 2014-07-15
      • 1970-01-01
      • 2014-10-22
      • 2011-10-14
      • 2020-09-29
      • 2012-05-07
      • 2012-04-24
      • 2011-11-14
      相关资源
      最近更新 更多