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

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

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

背景

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

问题

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ul>
  <li>Item one</li>
  <li>Item two</li>
  <li>Item three</li>
</ul>

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

EN

回答 1

Stack Overflow用户

回答已采纳

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var item3 = $('ul li').eq(2);

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

复制
相关文章
JQuery如何获取ID含有特殊字符的DOM元素
为业务需要,DOM元素的ID被命名为“c-order.range”,执行JQuery的DOM查询时,提示如下错误
黄啊码
2021/09/26
10.8K0
如何在 React 中获取点击元素的 ID?
在 React 应用中,我们经常需要根据用户的点击事件来执行相应的操作。在某些情况下,我们需要获取用户点击元素的唯一标识符(ID),以便进行进一步的处理。本文将详细介绍如何在 React 中获取点击元素的 ID,并提供示例代码帮助你理解和应用这个功能。
网络技术联盟站
2023/06/07
3.5K0
HTML DOM - 元素
如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。
陈不成i
2021/07/21
2.2K0
DOM元素定位
在HTML中有许多如图片等的DOM元素,在网页下拉移动中,DOM元素的位置定位通常通过 position 属性来完成
摸鱼的G
2023/02/22
9950
DOM 元素的循环遍历
get 方式获取的 dom 元素,仅可使用==for-in、for-of、for==循环
Krry
2020/06/10
6.5K0
使用js获取选中的dom元素 并改变选中(有序dom)的状态
拿我格子衫来
2023/10/19
2900
使用js获取选中的dom元素 并改变选中(有序dom)的状态
新手如何在 ES6 如何操作HTML DOM元素?
DOM代表文档对象**模型。HTML 页面在浏览器中呈现。浏览器将从网络服务器下载的页面中包含的所有元素组装到其内存中。一旦完成,浏览器就会在浏览器窗口中显示这些对象,一旦完成,浏览器就无法再识别单个 HTML 元素。支持 JavaScript 的浏览器能够在 HTML 页面在浏览器中呈现之后识别该页面中的各个对象,因为支持 JavaScript 的浏览器可以识别并使用 DOM。因此,允许随意控制对象的功能。
用户1418987
2023/10/21
3440
新手如何在 ES6 如何操作HTML DOM元素?
Spring在无RedirectAttributes的情况下(如Interceptor中)使用Flash scope
判断逻辑很简单,但是重定向的时候需要前台有消息提示,如果是在Controller中,可以在方法上注入RedirectAttributes参数,但是Interceptor中默认没有这个参数,那么我们如何实现RedirectAttributes的flashMessage功能呢?
飞奔去旅行
2019/06/13
5.5K0
图片不变形,宽高不超出父元素的情况下旋转图片
如题,具体的效果见这里 。做这样的效果的难点在于,计算没旋转前图片的宽,高和旋转后的宽高。
前端GoGoGo
2018/08/24
2.1K0
jQuery操作DOM元素
作为一个后端程序员,也是要和前端页面打交道的。最常见的场景莫过DOM元素操作和前端页面使用AJAX向服务器发送请求。 实现上述两个功能当然可以使用原生js来完成,但在实际开发过程中很少这样做,通常会使用一些别人封装好的js库来辅助我们的工作,jQuery就是这些辅助库中的一员。
雪飞鸿
2018/09/05
2.7K0
angular获取dom元素
方式一: ViewChild <div #box></div> @ViewChild('box') box: ElementRef; constructor(){ // 不能放在构造函数里面这个时候构造函数中还没有视图没法获取到box元素 } ngOnInit() { console.log(this.box.nativeElement); } 方式二: ElementRef <div class="box"></div> constructor(private el:ElementRef){
用户1437675
2019/05/15
4.3K0
DevOps如何在不牺牲安全性的情况下迁移到云端
企业采用DevOps意味着开发进行将比以往任何时候都要快。那么如何确保一切都是安全的,尤其是将业务迁移到云端时? 调研机构Gartner公司预测, 2022年全球云计算服务市场规模和增长率几乎是整体I
CloudBest
2019/09/17
6970
DevOps如何在不牺牲安全性的情况下迁移到云端
vue 获取 DOM 元素的方法
因为每个 vue 的组件实例上,都包含一个 refs 对象,里面存储着对应的 DOM 元素或组件的引用。所以在默认情况下, 组件的 refs 指向一个空对象 。
蓓蕾心晴
2023/02/17
5.4K0
Backbone.js
注:教程请参见这里(本文有很多内容都是从这里翻译的),官方网站在这里;综合例子参见这里。
四火
2022/07/15
9570
Backbone.js
JavaScript HTML DOM 元素 (节点)
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
陈不成i
2021/07/20
2.2K0
DOM概述 选取文档元素
有些html标签会有name元素,区别于id,name属性的值不必是唯一的,多个元素可能存在相同的名字。
mySoul
2018/08/06
1K0
jquery 操作DOM元素(1)
.clone()   创建一个匹配的元素集合的深度拷贝。   .clone([withDataAndEvents])     withDataAndEvents (默认为false)       一个Boolean 表示是否会复制元素上的时间处理函数。   .clone([withDataAndEvents][,deepwithDataAndEvents])     withDataAndEvents (默认为false)
用户1197315
2018/01/19
1.4K0
jquery操作DOM 元素(3)
.detach()   从DOM 中去掉所匹配的元素。     .detach([selector])       selector 一个选择表达式将需要移除的从匹配的元素中过滤出来。     $("p").detach(); .empty()   从DOM中移除集合中匹配元素的所有子节点。     .empty() 这个方法不接受任何参数。   结构:     <div class="container">
用户1197315
2018/01/19
1.1K0
jquery操作DOM 元素(2)
.after()   在匹配的元素集合中的每个元素后面插入参数指定的内容,作为其兄弟节点。   .after(content[,content])     content HTML字符串 DOM 元素 元素数组 对象,用来插入到集合中每个匹配元素的后面。     content HTML字符串 DOM 元素 元素数组 对象,用来插入到集合中每个匹配元素的后面。   .after(function)     function 返回一个 H
用户1197315
2018/01/19
1.2K0
关于动态创建DOM元素的问题
在我们实际的项目之中,相信有很多的朋友直接使用了以下的格式创建DOM元素
Isaac Zhang
2019/09/10
2.3K0
关于动态创建DOM元素的问题

相似问题

如何使用backbone.js缓存DOM元素?

12

Javascript不按ID查找DOM元素

26

如何在不使用元素ID的情况下在JQuery中遍历DOM树?

31

HTML DOM:如何在不丢失子元素的情况下获取元素?

30

如何在不创建新元素的情况下修改DOM元素的位置?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文