问题标签 [createelement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript:document.createElement('') & 删除 DOMElement
如果您在函数中创建一个元素,例如:
而且您不会将它附加到 DOM 中的任何位置,即通过 .appendChild 函数,它是否仍保留在内存中?所以你必须做
我只是好奇 :)
javascript - 您应该使用 innerHTML 还是通过一个一个地创建新元素来将 HTML 添加到 DOM 中?
有两种方法可以将 HTML 代码添加到 DOM,我不知道最好的方法是什么。
第一种方法
第一种方法很简单,我可以简单地添加 HTML 代码(使用 jQuery)$('[code here]').appendTo(element);
,这很像element.innerHTML = [code here];
第二种方法
另一种方法是一个一个地创建所有元素,例如:
document.createElement
此方法使用和等核心功能element.setAttribute
。
我应该什么时候使用第一种方法,什么时候使用第二种方法?方法二比方法一快吗?
编辑 -速度测试的结果
我做了三个速度测试,代码如下:
这给出了以下非常令人惊讶的结果
总之,innerHTML 方法似乎是最快的一种,并且在许多情况下是最易读的一种。
javascript - 用于 IE6.0 的 HTML5
您是否知道在不添加任何HTML 元素的情况下将此 HTML 代码优化为 IE6 或 7(或 8)的任何方法,或者 IE 跳过了所有 HTML5 元素?
如果我只想用 CSS 格式化元素,我不想使用其他功能,那么 document.createElement("nav") DOM 元素是否足以欺骗 IE 并制作纯 HTML 文档?
谢谢你。
有关 DOM 在 IE6、IE7 和 IE8 中使用 html5 启用脚本创建元素的更多信息 »此处
php - 创建元素和 insertBefore 不起作用
好的,我一直把头撞在墙上,我不知道为什么它没有创建元素。也许我在这里忽略了一些非常小的东西。基本上,这个 Javascript 代码在输出的 PHP 文档中,就像在页面加载的中间的某个地方,现在,不幸的是它不能进入标题。虽然我不确定这是否是问题所在,但也许是......嗯。
此外,我确信我在这些函数中链接到的其他函数也可以正常工作。这里的问题是,在这个函数中,div 永远不会被创建,我不明白为什么?此外,Firefox,FireBug 告诉我变量 divName 是未定义的,尽管我试图在函数中处理这个问题,但不知道为什么。
无论如何,我需要在以下 HTML 之前插入创建的 div 元素:
我在这里使用 name 而不是 id 因为我不想要重复的 id 值,这就是为什么我要更改 name 值并递增,因为这个函数可能被调用超过 1 次。例如,如果同一页面上有 3 个喊话框(不要问为什么...大声笑),我需要跳过我已经更改为“dp_Reserved_Counted”的其他名称,我相信我这样做是正确的。无论如何,如果可以的话,我会将其放入标题中并仅调用一次,但这是不可能的,因为它们已加载并且无法分辨它们是哪一个,因此它直接硬编码到实际中在 HTML 中的喊话框所在的页面上输出。基本上,不确定这是否是问题,但必须有某种解决方法,除非问题在我上面的代码中...... arrg
请帮我。我真正需要的是对这个问题进行第二次观察。谢谢 :)
javascript - createElement 相对于 innerHTML 的优势?
在实践中,使用 createElement 比使用 innerHTML 有什么优势?我之所以问,是因为我确信使用 innerHTML 在性能和代码可读性/可维护性方面更有效,但我的队友已经决定使用 createElement 作为编码方法。我只是想了解 createElement 如何更高效。
javascript - 创建Style Node,添加innerHTML,添加到DOM,IE头疼
我有一个两部分的问题。
一、场景:
由于我们在移动浏览器对 NOSCRIPT 的支持方面遇到了一些奇怪的问题,我的任务是提出一种替代解决方案来“检测”JS。解决方案逻辑是在页面上有两个 DIV。一个是错误,说明您没有 JS 并且默认显示他。如果一个人有 JS,那么我们想要向 HEAD 添加一个新的 STYLE 块,它会覆盖以前的 CSS 并隐藏错误并显示内容。
示例 HTML:
这是我开始的 JS:
但是,我遇到了问题。如果您尝试将 innerHTML 插入到创建的元素中,然后再将其放入 DOM 中,则一些谷歌搜索会导致 IE 可能遇到的安全问题的描述:
http://karma.nucleuscms.org/item/101
所以,我这样修改了脚本:
问题 1:这是 IE 问题的有效解决方法吗?有没有更有效的解决方案?
问题2:即使进行了调整,脚本在IE中仍然无法运行。它在 Firefox 中运行良好,但在 IE 7 中出现“未知运行时错误”。
我在 JSBIN 上有这段代码的示例:
有谁知道IE是怎么回事?
更新:
我通过谷歌偶然发现了这个链接。注意最后一条评论:
http://msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
也就是说,您确实应该将所有样式规则放在 HEAD 中,以严格遵守 XHTML。这样做也可能有点棘手,因为您不能使用 innerHTML 直接注入 HEAD 或 STYLE 元素。(这两个标签都是只读的。)
哎呀!真的?火狐只是过于宽容了吗?或者这只是一个非常奇怪的 IE 怪癖?
更新 2:
关于我们在这里尝试解决的问题的更多背景信息。我们正在处理移动设备和一些过时的设备 a) 不支持 NOSCRIPT 和 b) 具有慢速 JS 引擎。
由于他们不支持 NOSCRIPT,我们默认显示一个错误,然后通过 JS 隐藏它(如果有),并为他们提供正确的内容。由于这些 JS 引擎的速度很慢,人们会看到 DIV 显示/隐藏的“闪烁”。这是处理该问题的建议解决方案,因为它会在 DIV 甚至渲染之前加载 CSS。
由于它似乎无效,解决方案将是在这些旧设备上,我们将使用此方法(因为它似乎有效,即使不在 IE 中),然后所有其他合适的浏览器将按照建议进行......我们'将在每个 DIV 加载到 DOM 后通过内联 JS 更新 DISPLAY CSS 属性。
尽管如此,我仍然很好奇这个问题是否是一个 IE 错误,或者 IE 是否通过使 STYLE 成为只读元素实际上遵守了正确的标准。
javascript - appendChild() 和 createElement() Javascript 问题
当我在代码中使用 appendChild() 和 createElement() 时,未应用已定义 CSS ID 的后续样式。有人能告诉我为什么吗?这是我的代码:
然后我有一些其他代码通过 API 到 Bing 处理我的搜索查询(只是因为谷歌现在收费......)
接下来,我使用相同的方法插入另一个 div:
现在我想对这些数字应用一些样式。但是,当我将样式应用于 searchResultsPage 时,例如
我没有得到传递的风格。奇怪的是,如果我只插入这两个元素中的一个,一切都会按计划进行,并且样式显示得很好。问题是我希望页面显示在搜索的顶部和底部。
任何想法为什么会发生这种情况?我认为这可能与一个元素被使用两次有关,但我不知道如果对象不同,为什么这会影响任何事情。
谢谢。
javascript - 将元素添加为字符串与 createElement()
对于我想要完成的事情,我可以使用createElement()
orinnerHTML
和一个字符串。
到底哪个更快?很长一段时间以来,我一直相信字符串比返回相同结果的内置函数要慢得多,但这是真的吗?
我问是因为我已经尝试过createElement()
了,似乎必须添加到每个元素的所有属性都会减慢速度。不仅如此,它还占用更多空间。我有一个循环,它根据数组的长度从 1-infinity 开始,但最好在显示减速迹象之前添加多达 50 个左右的元素。在我希望创建的这 50 个左右的元素中,还有大约 10 个元素。所以,总的来说,它实际上创建了大约 500 个元素。
通过使用内置函数创建元素,我注意到速度比平时快了一点,并且由于我在重置该数组(数组是 5D 并且没有在同一个脚本中设置),我想知道哪个确实更好,无论是速度还是更好的实践,然后再重新开始。
javascript - createElement 背景图片
我正在尝试创建表格宽度 javascript 和 createElement()。我的问题是它没有设置任何背景图像(只是纯白色)。但是,如果我将 的 innerHTML 设置为具有相同路径的图像标签,它就可以工作!
我还有另一个问题是表中的每一行之间都有空格。这是我要附加到的 DOM 元素:
和 CSS
这些问题在 Chrome 和 FF @ ubuntu 11.04 中都会出现。javascript 控制台中没有显示错误。
- 杰克
src - 使用 document.createElement() 加载 PHP 文件
我怎样才能使这项工作?我想像这样加载一个php文件:
- 单击按钮。
- 调用 Javascript 函数。
- 在 Javascript 函数中,使用 src file.php 创建一个 img。
这应该强制加载 php.ini。这是代码。
然后在 savepages.php 我做另一个警报来验证 php 是否被调用,它不是。这是savepages.php。
来自 php 的警报不会发生。是否有不同的元素类型会强制加载 php?我没有安装 ajax,所以我需要这样的解决方法。
谢谢。