Questions tagged «dom»

文档对象模型(DOM)是一种以编程方式引用诸如XML和HTML之类的标记语言的元素的方法。与[javascript]或任何其他具有DOM分析器的编程语言一起使用

2
我应该使用document.createDocumentFragment还是document.createElement
我正在阅读有关文档片段和DOM重排的信息,想知道它们与DOM中不存在什么document.createDocumentFragment区别,document.createElement直到我将它们附加到DOM元素上为止。 我做了一个测试(如下),所有这些都花费了完全相同的时间(约95ms)。猜测可能是由于没有将样式应用于任何元素,因此可能没有重排。 无论如何,基于下面的示例,为什么在插入DOM时我应该使用createDocumentFragment而不是为什么createElement,两者之间的区别是什么? var htmz = "<ul>"; for (var i = 0; i < 2001; i++) { htmz += '<li><a href="#">link ' + i + '</a></li>'; } htmz += '<ul>'; //createDocumentFragment console.time('first'); var div = document.createElement("div"); div.innerHTML = htmz; var fragment = document.createDocumentFragment(); while (div.firstChild) { fragment.appendChild(div.firstChild); } $('#first').append(fragment); console.timeEnd('first'); …
97 javascript  dom 

14
Javascript / DOM:如何删除DOM对象的所有事件?
Наэтотвопросестьответына堆栈溢出нарусском:КакзаблокироватьпользовательскуюфункциюдлясобытиякопированиявJS? 只是一个问题:有什么办法可以完全删除某个对象(例如div)的所有事件? 编辑:我正在添加div.addEventListener('click',eventReturner(),false);一个事件。 function eventReturner() { return function() { dosomething(); }; } EDIT2:我找到了一种可行的方法,但无法用于我的情况: var returnedFunction; function addit() { var div = document.getElementById('div'); returnedFunction = eventReturner(); div.addEventListener('click',returnedFunction,false); //You HAVE to take here a var and not the direct call to eventReturner(), because the function address must be the same, and it …
97 javascript  events  dom 

14
图像加载的jQuery事件
是否可以通过jQuery事件检测何时加载所有图像? 理想情况下,应该有一个 $(document).idle(function() { } 要么 $(document).contentLoaded(function() { } 但是我找不到这样的东西。 我想到要附加这样的事件: $(document).ready(function() { var imageTotal = $('img').length; var imageCount = 0; $('img').load(function(){if(++imageCount == imageTotal) doStuff();}); } 但是,如果图像无法加载,会中断吗?在正确的时间调用该方法至关重要。
96 jquery  dom 

11
获取DOM节点的字符串表示形式
Javascript:我有一个节点(元素或文档)的DOM表示形式,并且正在寻找它的字符串表示形式。例如, var el = document.createElement("p"); el.appendChild(document.createTextNode("Test")); 应该产生: get_string(el) == "<p>Test</p>"; 我有一种强烈的感觉,我错过了一些简单的事情,但是我只是找不到一种可以在IE,FF,Safari和Opera中使用的方法。因此,outerHTML是没有选择的。


2
有没有将JavaScript对象附加到HTML元素的好方法?
我想将JavaScript对象与HTML元素相关联。有没有简单的方法可以做到这一点? 我注意到HTML DOM定义了setAttribute方法,它看起来像是为任意属性名称定义的。但是,这只能设置字符串值。(您当然可以使用它来将密钥存储到字典中。) 细节(尽管我对一般问题最感兴趣): 具体来说,我有HTML元素表示一棵树中的节点,并且试图启用拖放功能,但是jQuery drop事件只会让我拖放元素。 向事件处理程序获取信息的正常模式似乎是在创建JavaScript对象的同时创建HTML元素,然后通过关闭这些JavaScript对象来定义事件处理程序-但这在此方面效果不佳情况(我可能有一个全局对象,当拖动开始时会填充它……但是感觉有点讨厌)。
96 javascript  dom 

7
如何将DOM节点列表转换为Javascript中的数组?
我有一个接受HTML节点列表的Javascript函数,但它需要一个Javascript数组(它在该数组上运行一些Array方法),并且我想向其提供Document.getElementsByTagName返回DOM节点列表的输出。 最初,我想到了使用简单的方法: Array.prototype.slice.call(list,0) 而且,这在所有浏览器中都可以正常运行,除了Internet Explorer会返回错误“ JScript对象预期”,因为Document.getElement*方法返回的DOM节点列表显然不足以成为函数调用目标的JScript对象。 注意事项:我不介意编写Internet Explorer特定的代码,但是我不允许使用任何Javascript库(例如JQuery),因为我正在编写要嵌入到第三方网站中的小部件,并且无法加载外部库会给客户带来冲突。 我最后的努力是遍历DOM节点列表并自己创建一个数组,但是有更好的方法吗?
96 javascript  html  dom 

11
焦点输入框在负载下
如何在页面加载时将光标聚焦在特定的输入框上? 是否还可以保留初始文本值并将光标放在输入的末尾? <input type="text" size="25" id="myinputbox" class="input-text" name="input2" value = "initial text" />
95 javascript  html  dom  xhtml 

10
如何在JavaScript中获取DOM元素的HTML
假设我有以下HTML: <div><span><b>This is in bold</b></span></div> 我想获取div的HTML,包括div本身。Element.innerHTML仅返回: <span>...</span> 有任何想法吗?谢谢
94 javascript  html  dom 

11
在DOM对象上设置属性时如何避免无参数重新分配
我有一个主要目的是在DOM对象上设置属性的方法 function (el) { el.expando = {}; } 我使用AirBnB的代码风格,这使ESLint抛出no-param-reassign错误: 错误分配给功能参数“ el”的无参数重新分配 在符合AirBnB的代码风格的同时,如何操作作为参数传递的DOM对象? 有人建议用/* eslint react/prop-types: 0 */指的是另一个问题,但如果我没有弄错的适用以及为反应,而不是原生DOM操作。 我也不认为更改代码样式是解决方案。我相信使用标准样式的好处之一是跨项目具有一致的代码,并且随意更改规则感觉就像滥用AirBnB这样的主要代码样式一样。 作为记录,我在GitHub上问了AirBnB,他们认为在这些有争议的案例#766中该怎么办。
94 javascript  dom  eslint 

6
HTMLCollection,NodeList和对象数组之间的区别
对于DOM,我一直对HTMLCollections,对象和数组感到困惑。例如... document.getElementsByTagName("td")和之间有什么区别$("td")? $("#myTable")和$("td")是对象(jQuery的对象)。为什么console.log还会在它们旁边显示DOM元素的数组,而它们不是对象也不是数组? 什么是难以捉摸的“ NodeLists”,以及如何选择一个? 还请提供以下脚本的任何解释。 谢谢 [123,"abc",321,"cba"]=[123,"abc",321,"cba"] {123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...} Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...} document.links= HTMLCollection[a #, a #] document.getElementById("myTable")= <table id="myTable"> document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow] document.getElementsByTagName("td")= HTMLCollection[td, td, td, td] $("#myTable")= Object[table#myTable] $("td")= Object[td, td, td, td] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 …
94 javascript  jquery  dom 

8
jQuery-从大型表中删除所有行的最快方法
我认为这可能是删除非常大的表(3000行)中内容的快速方法: $jq("tbody", myTable).remove(); 但是在Firefox中完成大约需要五秒钟。我是否在做一些愚蠢的事情(除了尝试向浏览器加载3000行之外)?有更快的方法吗?
93 javascript  jquery  dom 

8
如何在DOM中移动iFrame而不丢失其状态?
看一下这个简单的HTML: <div id="wrap1"> <iframe id="iframe1"></iframe> </div> <div id="warp2"> <iframe id="iframe2"></iframe> </div> 假设我想移动包装纸,使包装纸位于#wrap2之前#wrap1。iframe被JavaScript污染了。我知道jQuery的.insertAfter()和.insertBefore()。但是,当我使用它们时,iFrame会丢失其所有HTML,JavaScript变量和事件。 可以说以下是iFrame的HTML: <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> // The variable below would change on click // This represents changes on variables after the code is loaded // These changes should remain after the iFrame is moved variableThatChanges …

7
getAttribute()与Element对象的属性?
表达式喜欢Element.getAttribute("id")并且Element.id返回相同的东西。 当我们需要HTMLElement对象的属性时,应该使用哪一个? 这些方法和getAttribute()和有没有跨浏览器的问题setAttribute()? 还是直接访问对象属性与使用这些属性方法之间的性能影响?
92 javascript  html  dom 

6
未捕获的TypeError:无法读取未定义的属性“ top”
如果这个问题已经回答,我深表歉意。我尝试搜索解决方案,但是找不到适合我的代码的解决方案。我还是jQuery新手。 对于两个不同的页面,我有两种不同类型的粘滞菜单。这是两者的代码。 $(document).ready(function () { var contentNav = $('.content-nav').offset().top; var stickyNav = function () { var scrollTop = $(window).scrollTop(); if (scrollTop > contentNav) { $('.content-nav').addClass('content-nav-sticky'); } else {; $('.content-nav').removeClass('content-nav-sticky') } }; stickyNav(); $(window).scroll(function () { stickyNav(); }); }); $(document).ready(function () { var stickyNavTop = $('.nav-map').offset().top; // var contentNav = $('.content-nav').offset().top; …
91 javascript  jquery  html  css  dom 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.