首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Backbone.js如何在不使用ID的情况下跟踪DOM元素?

Backbone.js如何在不使用ID的情况下跟踪DOM元素?
EN

Stack Overflow用户
提问于 2011-09-01 18:07:36
回答 1查看 1K关注 0票数 12

背景

我使用Backbone.js已经有一段时间了,其中一个让我印象深刻的方面是它允许我将DOM元素简化、抽象和重用为“视图”。我试着阅读了一些带注释的源代码,并且熟悉JQuery,但对DOM在更深层次上的工作方式知之甚少。

问题

Backbone.JS如何将DOM元素与视图联系起来,而不为它们分配id、类或其他属性?

代码语言:javascript
运行
复制
<ul>
  <li>Item one</li>
  <li>Item two</li>
  <li>Item three</li>
</ul>

我喜欢这个骨干网,我想知道是如何做到这一点的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-01 18:18:40

在javascript中,变量可以保存对DOM的某些元素的引用(即“引用”的编程内容),DOM只是一个Javascript对象。主干确保视图中至少存在该元素。例如,在jQuery中,当您引用列表中的第三项时:

代码语言:javascript
运行
复制
var item3 = $('ul li').eq(2);

(这是一个零偏移量列表,第一项位于索引0,第三项位于索引2),现在您可以使用普通的jQuery DOM操作程序将文本从“项3”更改为“项3 1 4 1 5 9”:

代码语言:javascript
运行
复制
item3.text("Item three point one four one five nine");

即使列表项没有任何特定的类或ID属性。

主干视图的el字段包含对该视图呈现其所有内容的父元素的常量引用。主干使用jQuery delegate事件管理器将通用事件处理程序附加到该常量引用。每当在DOM元素或其任何子元素中发生事件时,委托都会捕获事件,以及创建事件的父el中对特定DOM对象的引用,主干使用一些相当标准的jQuery魔术将其映射到视图中的事件处理程序。

它确实是非常酷的东西。

我要补充的是,-ness引用的“常数”el是,呃,有争议的。如果要将视图逻辑附加到现有的HTML元素,则需要在视图的el中为initialize()分配一次。Javascript不强制执行任何恒定性的概念,但是只有当您确信自己知道自己在做什么时,才应该直接分配给el (即this.el = something())。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7274531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档