草庐IT

dom-repeat

全部标签

javascript - 但为什么浏览器 DOM 经过 10 年的努力仍然如此缓慢?

Web浏览器DOM自上世纪90年代后期就已问世,但它仍然是性能/速度方面的最大限制因素之一。我们拥有来自Google、Mozilla、Microsoft、Opera、W3C和各种其他组织的一些世界上最聪明的头脑,他们致力于为我们所有人开发网络技术,所以显然这不是简单的“哦,我们没有”优化它”的问题。我的问题是如果我在专门处理这个问题的网络浏览器上工作,为什么我会这么困难地让它运行得更快?我的问题不是问what让它变慢,它要求why不是变快了吗?这似乎与其他地方正在发生的事情背道而驰,例如性能接近C++代码的JS引擎。快速脚本示例:for(vari=0;i由于DOM而变慢的示例:for(

javascript - 将父范围值传递给 Angular 中的 ng-repeat 循环

这应该是一个极其简单的问题,但我发现的所有解决方法都很复杂。我在模板中使用ng-repeat循环遍历对象数组,如下所示:{{message.subject}}...{{campaign.name}}...由于ng-repeat创建了一个新范围,Controller中的“campaign”对象似乎不可访问。有什么方法(除了将事件对象添加到数组中的每个项目之外)获得该值吗?提前致谢。 最佳答案 您可以使用$parent访问父作用域{{message.subject}}...{{$parent.campaign.name}}...

javascript - 仅使用纯 JavaScript(无 jQuery)向给定纯文本 HTML 的 DOM 添加元素

我需要能够在给定HTML原始文本字符串的情况下向页面添加元素,包括任意数量的标签、属性等。理想情况下,我希望能够使用任意格式良好的字符串来执行类似的操作网页;vartheElement=document.createElement("SomeTitleSomearbitrarytext");document.getElementById("body").appendChild(theElement);显然这行不通,我正在寻找实现相同结果的好方法。如果可能,我想避免解析HTML。我可以使用的工具受到严格限制,没有jQuery或外部包含,并且必须跨浏览器并向后兼容到IE6。任何帮助都是巨大

javascript - angular.js ng-repeat 用于创建网格

我正在尝试使用bootstrap3和angularjs创建网格。我正在尝试创建的网格是这样的,使用ng-repeat重复。itemitemitem我已经尝试使用ng-if和($index%3==0)来添加行,但这似乎无法正常工作.任何建议都会很棒!谢谢!编辑:这是我最终使用的有效代码: 最佳答案 公认的答案是显而易见的解决方案,但是表示逻辑应该保留在View中,而不是在Controller或模型中。此外,我无法让OP的解决方案发挥作用。当你有一个扁平的项目列表(数组)时,这里有两种创建网格系统的方法。假设我们的项目列表是一个字母表:

javascript - 如何从dom中删除select2

假设我们有一个简单的select2列表:Alabama...Wyoming启动方式如下:$("#e1").select2();如何删除select2并将其返回到常规下拉列表?我在文档中找不到任何示例或条目。类似于:$("#e1").select2('remove');会很好。 最佳答案 您需要在select2上使用destroy方法。查看Documentation即$("#e1").select2('destroy'); 关于javascript-如何从dom中删除select2,我们在

javascript - 检测/监控 DOM 变化的最有效方法?

我需要一种有效的机制来检测DOM的变化。最好是跨浏览器,但如果有任何不跨浏览器的有效方法,我可以使用故障安全的跨浏览器方法来实现它们。特别是,我需要检测会影响页面文本的更改,因此需要任何新的、删除的或修改的元素,或者对内部文本(innerHTML)的更改。我无法控制所做的更改(它们可能是由于包含第3方javascript等),因此无法从这个Angular进行处理-我需要以某种方式“监视”更改。目前我已经实现了一种“quick'n'dirty”方法,它会定期检查body.innerHTML.length。这当然不会检测到导致返回相同长度的变化,但在这种情况下“足够好”-发生这种情况的可能

javascript - 找到什么 javascript 改变了 DOM?

我最近一直在使用其他人的大量JS,并且开始真正讨厌尝试调试它。即使使用Chrome的开发工具,我也无法追踪在页面加载期间发生的大量DOM更改。是否有任何工具可以告诉我DOM的哪一部分(比如添加的属性)是由什么JS完成的?谢谢 最佳答案 在Chrome开发工具中,您可以选择在DOM更改时中断执行。还有一个截图来说明Wolfram的答案(+1) 关于javascript-找到什么javascript改变了DOM?,我们在StackOverflow上找到一个类似的问题:

javascript - 使用 ng-repeat 和 limitTo 限制显示的可见项的数量

我试图将我的结果集限制为固定数量。我可以将limitTo与ng-repeat一起使用,但这会限制项目,而不管它们当前的可见性,并从DOM中删除项目。我想限制可见项目的数量,同时将所有内容都保留在DOM中。这是我的当前代码。我的目标是始终在列表中显示不超过50个项目,即使items包含500个项目。item.id这最初限制为50个项目,但如果我过滤列表(通过修改某些项目的item.visible),列表永远不会显示50-500范围内的项目,而是显示少于50个项目。限制ng-repeat使其仅将可见项计入限制的正确方法是什么? 最佳答案

javascript - 访问刚刚 append 到 DOM 的 jquery 元素

我只是在DOM上append一个元素,例如:$("#div_element").append('test');在我append它之后,我需要访问我刚刚制作的元素以便将点击功能绑定(bind)到它,我试过:$("#div_element").append('test').click(function(){alert("test")});但是上面的方法没有用。我可以唯一地标识该元素,但是当我可能有一种方法可以在我append它之后立即获取该元素时,这似乎有点工作量。 最佳答案 你可以这样做:varel=$('test');$("#div

javascript - AngularJS - 在选择标签中使用 ng-repeat 添加了额外的空白选项

我有一个使用AngularJSng-repeat选择创建的列表框。列表框已正确创建,当我选择其中一项并单击我的按钮时,我进入了该功能并获得了我需要的信息。我的html代码如下:Load我的问题是,当列表框绘制时,它的顶部有一项是空白的。当我在Chrome中运行期间检查列表框时,我在控制台中得到以下输出:Item1Item2Item3Item4Item5Item6我想知道如何摆脱ng-repeat插入的第一个选项。我不想在列表框的顶部看到一个空白区域。我意识到一个选项是将第一个实际选项(value="0")设置为所选项目,但我宁愿没有任何所选项目开始。 最佳答