问题标签 [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.

0 投票
2 回答
43111 浏览

javascript - Javascript:document.createElement('') & 删除 DOMElement

如果您在函数中创建一个元素,例如:

而且您不会将它附加到 DOM 中的任何位置,即通过 .appendChild 函数,它是否仍保留在内存中?所以你必须做

我只是好奇 :)

0 投票
3 回答
4921 浏览

javascript - 您应该使用 innerHTML 还是通过一个一个地创建新元素来将 HTML 添加到 DOM 中?

有两种方法可以将 HTML 代码添加到 DOM,我不知道最好的方法是什么。

第一种方法

第一种方法很简单,我可以简单地添加 HTML 代码(使用 jQuery)$('[code here]').appendTo(element);,这很像element.innerHTML = [code here];

第二种方法

另一种方法是一个一个地创建所有元素,例如:

document.createElement此方法使用和等核心功能element.setAttribute

我应该什么时候使用第一种方法,什么时候使用第二种方法?方法二比方法一快吗?

编辑 -速度测试的结果

我做了三个速度测试,代码如下:

这给出了以下非常令人惊讶的结果

总之,innerHTML 方法似乎是最快的一种,并且在许多情况下是最易读的一种。

0 投票
2 回答
4990 浏览

javascript - 用于 IE6.0 的 HTML5

您是否知道在不添加任何HTML 元素的情况下将此 HTML 代码优化为 IE6 或 7(或 8)的任何方法,或者 IE 跳过了所有 HTML5 元素?

如果我只想用 CSS 格式化元素,我不想使用其他功能,那么 document.createElement("nav") DOM 元素是否足以欺骗 IE 并制作纯 HTML 文档?

谢谢你。

有关 DOM 在 IE6、IE7 和 IE8 中使用 html5 启用脚本创建元素的更多信息 »此处

0 投票
3 回答
1025 浏览

php - 创建元素和 insertBefore 不起作用

好的,我一直把头撞在墙上,我不知道为什么它没有创建元素。也许我在这里忽略了一些非常小的东西。基本上,这个 Javascript 代码在输出的 PHP 文档中,就像在页面加载的中间的某个地方,现在,不幸的是它不能进入​​标题。虽然我不确定这是否是问题所在,但也许是......嗯。

此外,我确信我在这些函数中链接到的其他函数也可以正常工作。这里的问题是,在这个函数中,div 永远不会被创建,我不明白为什么?此外,Firefox,FireBug 告诉我变量 divName 是未定义的,尽管我试图在函数中处理这个问题,但不知道为什么。

无论如何,我需要在以下 HTML 之前插入创建的 div 元素:

我在这里使用 name 而不是 id 因为我不想要重复的 id 值,这就是为什么我要更改 name 值并递增,因为这个函数可能被调用超过 1 次。例如,如果同一页面上有 3 个喊话框(不要问为什么...大声笑),我需要跳过我已经更改为“dp_Reserved_Counted”的其他名称,我相信我这样做是正确的。无论如何,如果可以的话,我会将其放入标题中并仅调用一次,但这是不可能的,因为它们已加载并且无法分辨它们是哪一个,因此它直接硬编码到实际中在 HTML 中的喊话框所在的页面上输出。基本上,不确定这是否是问题,但必须有某种解决方法,除非问题在我上面的代码中...... arrg

请帮我。我真正需要的是对这个问题进行第二次观察。谢谢 :)

0 投票
5 回答
38738 浏览

javascript - createElement 相对于 innerHTML 的优势?

在实践中,使用 createElement 比使用 innerHTML 有什么优势?我之所以问,是因为我确信使用 innerHTML 在性能和代码可读性/可维护性方面更有效,但我的队友已经决定使用 createElement 作为编码方法。我只是想了解 createElement 如何更高效。

0 投票
3 回答
11232 浏览

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 上有这段代码的示例:

http://jsbin.com/ucesi4/4

有谁知道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 成为只读元素实际上遵守了正确的标准。

0 投票
2 回答
2477 浏览

javascript - appendChild() 和 createElement() Javascript 问题

当我在代码中使用 appendChild() 和 createElement() 时,未应用已定义 CSS ID 的后续样式。有人能告诉我为什么吗?这是我的代码:

然后我有一些其他代码通过 API 到 Bing 处理我的搜索查询(只是因为谷歌现在收费......)

接下来,我使用相同的方法插入另一个 div:

现在我想对这些数字应用一些样式。但是,当我将样式应用于 searchResultsPage 时,例如

我没有得到传递的风格。奇怪的是,如果我只插入这两个元素中的一个,一切都会按计划进行,并且样式显示得很好。问题是我希望页面显示在搜索的顶部和底部。

任何想法为什么会发生这种情况?我认为这可能与一个元素被使用两次有关,但我不知道如果对象不同,为什么这会影响任何事情。

谢谢。

0 投票
3 回答
6072 浏览

javascript - 将元素添加为字符串与 createElement()

对于我想要完成的事情,我可以使用createElement()orinnerHTML和一个字符串。

到底哪个更快?很长一段时间以来,我一直相信字符串比返回相同结果的内置函数要慢得多,但这是真的吗?

我问是因为我已经尝试过createElement()了,似乎必须添加到每个元素的所有属性都会减慢速度。不仅如此,它还占用更多空间。我有一个循环,它根据数组的长度从 1-infinity 开始,但最好在显示减速迹象之前添加多达 50 个左右的元素。在我希望创建的这 50 个左右的元素中,还有大约 10 个元素。所以,总的来说,它实际上创建了大约 500 个元素。

通过使用内置函数创建元素,我注意到速度比平时快了一点,并且由于我在重置该数组(数组是 5D 并且没有在同一个脚本中设置),我想知道哪个确实更好,无论是速度还是更好的实践,然后再重新开始。

0 投票
1 回答
4099 浏览

javascript - createElement 背景图片

我正在尝试创建表格宽度 javascript 和 createElement()。我的问题是它没有设置任何背景图像(只是纯白色)。但是,如果我将 的 innerHTML 设置为具有相同路径的图像标签,它就可以工作!

我还有另一个问题是表中的每一行之间都有空格。这是我要附加到的 DOM 元素:

和 CSS

这些问题在 Chrome 和 FF @ ubuntu 11.04 中都会出现。javascript 控制台中没有显示错误。

  • 杰克
0 投票
2 回答
1442 浏览

src - 使用 document.createElement() 加载 PHP 文件

我怎样才能使这项工作?我想像这样加载一个php文件:

  • 单击按钮。
  • 调用 Javascript 函数。
  • 在 Javascript 函数中,使用 src file.php 创建一个 img。

这应该强制加载 php.ini。这是代码。

然后在 savepages.php 我做另一个警报来验证 php 是否被调用,它不是。这是savepages.php。

来自 php 的警报不会发生。是否有不同的元素类型会强制加载 php?我没有安装 ajax,所以我需要这样的解决方法。

谢谢。