草庐IT

dom-repeat

全部标签

javascript - 迭代所有 DOM 元素的最有效方法

不幸的是,我需要遍历页面的所有DOM元素,我想知道最有效的技术是什么。我可能可以自己对这些进行基准测试,如果我有时间也可以,但我希望有人已经经历过这个或者有一些我没有考虑过的选择。目前我正在使用jQuery并这样做:$('body*').each(function(){var$this=$(this);//dostuff});虽然它有效,但它似乎在客户端上造成了一些延迟。它还可以使用更具体的jQuery上下文进行调整,例如$('body','*')。我突然想到原生Javascript通常比jQuery更快,我发现了这一点:varitems=document.getElementsByT

javascript - DOM 属性更改时触发事件

有什么方法可以在属性更改时触发事件(可能是自定义的)?比方说,当IMGsrc或DIV的innerHtml发生变化时? 最佳答案 注意:截至2012年,突变事件已从标准中删除,现已弃用。请参阅其他答案或文档以了解如何使用它们的替代品,MutationObserver.您指的是DOMMutationEvents.浏览器对这些事件的支持很差(但正在改进)。MutationEventspluginforjQuery可能会给你一些帮助。 关于javascript-DOM属性更改时触发事件,我们在S

JavaScript DOM : Find Element Index In Container

我需要通过对象引用在其容器内找到元素的索引。奇怪的是,我找不到简单的方法。请不要使用jQuery-只有DOM。ULLILILI-myindexis2LI是的,我可以为每个元素分配ID并遍历所有节点以匹配ID,但这似乎是一个糟糕的解决方案。没有更好的东西吗?所以,假设我有一个对第三个LI的对象引用,如上例所示。我怎么知道它是索引2?谢谢。 最佳答案 您可以使用Array.prototype.indexOf。为此,我们需要将HTMLNodeCollection稍微“转换”为真正的Array。例如:varnodes=Array.proto

javascript - 无限滚动或大量 dom 元素的性能?

我有一个关于大量domelmenets和性能的问题。假设我在一个页面上有6000个dom元素,并且当用户与页面交互(用户滚动以创建新的dom元素)时可以增加元素的数量,例如twitter。要提高页面的性能,我能想到的只有两件事。将不可见项目的显示设置为无以避免重排从dom中删除不可见的项目,然后根据需要重新添加它们。他们是否有任何其他方法来改进包含大量dom元素的页面? 最佳答案 我们不得不在FoldingText上处理类似的问题.随着文档变大,会创建更多行元素和关联的跨度元素。浏览器引擎似乎窒息了,因此需要找到更好的解决方案。以下

javascript - 使用纯 JavaScript 获取 DOM 元素值

这些解决方案之间有什么区别吗?解决方案一:functiondoSomething(id,value){console.log(value);//...}...和解决方案2:functiondoSomething(id){varvalue=document.getElementById(id).value;console.log(value);//...} 最佳答案 更新:问题已编辑。这两种解决方案现在是等效的。原始答案是,最值得注意的是!我认为第二个不会起作用(而且如果起作用,也不是很便携)。第一个应该没问题。//HTML://Ja

javascript - 获取跨域iframe的DOM内容

这个问题在这里已经有了答案:Crossdomainiframeissue(5个答案)关闭6年前。我有一个跨域网站的iframe。我想阅读iframe的DOM,我相信这是可能的,因为使用检查器,我什至可以修改iframe的DOM。然而,我尝试阅读它的每一种方式,都会遇到同源策略。我想要的只是从iframe加载到本地DOM中的内容。我认为它会像$(document.body).find('iframe').html()一样简单,但它返回的是空字符串。我真的希望有一种方法可以做到这一点,因为过去几天我一直在做的工作都是基于此可行的。谢谢

javascript - 在 DOM 对象上设置属性时如何避免无参数重新分配

我有一个主要目的是在DOM对象上设置属性的方法function(el){el.expando={};}我使用AirBnB的代码风格,这使得ESLint抛出一个no-param-reassign错误:errorAssignmenttofunctionparameter'el'no-param-reassign如何在符合AirBnB代码风格的同时操作作为参数传递的DOM对象?有人建议使用/*eslintreact/prop-types:0*/引用anotherissue但如果我没记错的话,这适用于React,但不适用于原生DOM操作。我也不认为改变代码风格是一个答案。我相信使用标准风格的好

javascript - 将 backbone.js View 附加到现有元素与将 el 插入 DOM

我正在实现我的第一个实际的非教程Backbone应用程序,并且有两个关于使用backbone.js的方面的问题,我不太满意,这与注入(inject)View的呈现el到DOM与使用现有元素作为el。我想我会在这里为大家提供一些“教学时刻”,并感谢您的帮助。我在网络上看到的大多数BackboneView示例在创建View时指定tagName、id和/或className,从而创建一个与DOM无关的el。它们通常看起来像:App.MyView=Backbone.View.extend({tagName:'li',initialize:function(){...},render:funct

javascript - ID包含方括号时按ID查找DOM元素?

我有一个ID类似于的DOM元素:something[500]它是由我的RubyonRails应用程序构建的。我需要能够通过jQuery获取这个元素,这样我就可以遍历DOM以删除它的父元素的父元素,它有一个我事先无法访问的变量ID。有人知道我该怎么做吗?以下代码似乎不起作用:alert($("#something["+id+"]").parent().parent().attr("id"));经过进一步检查,发现以下内容:$("#something["+id+"]")返回一个对象,但当我在其上运行“.html()”或“.text()”时,结果始终为空或只是一个空字符串。

javascript - jQuery 对象和 DOM 元素

我想了解jQuery对象和DOM元素之间的关系..当jQuery返回一个元素时,它在警报中显示为[objectObject]。当getElementByID返回一个元素时,它显示为[objectHTMLDivElement]。这到底是什么意思?我的意思是它们都是有区别的对象吗?还有哪些方法可以对jQuery对象和DOM元素进行操作?一个jQuery对象可以表示多个DOM元素吗? 最佳答案 IwouldliketounderstandrelationshipbetweenjQueryobjectandDOMelementjQuery对