使用javascript在元素中创建元素

使用javascript在元素中创建元素,javascript,html,dom,elements,Javascript,Html,Dom,Elements,这里没有。我在网上搜索了一下,想找到一个问题的答案,但似乎什么都找不到(这让我的希望破灭了)。我来了。 我想知道是否有一种方法可以用javascript创建一个HTML元素,但是在新创建的HTML元素中也可以用javascript创建另一个HTML元素。我想你可以称之为ElementException//wink 更具体地说,我想创建一个带有文本的段落,但我想在该文本中包含链接(或者可能是按钮?) var para=document.createElement(“P”); var t=docum

这里没有。我在网上搜索了一下,想找到一个问题的答案,但似乎什么都找不到(这让我的希望破灭了)。我来了。 我想知道是否有一种方法可以用javascript创建一个HTML元素,但是在新创建的HTML元素中也可以用javascript创建另一个HTML元素。我想你可以称之为ElementException//wink

更具体地说,我想创建一个带有文本的段落,但我想在该文本中包含链接(或者可能是按钮?)

var para=document.createElement(“P”);
var t=document.createTextNode(“这是一个段落,我可以这样做吗:”);
第3(t)段;
文件.正文.附件(第6段);
我尝试在TextNode的字符串中编写HTML标记,但即使是我也能看出这是我的愚蠢。有没有一个简单的方法来实现这一点,或者有什么方法?如果我问的是不可能的事情,请你直言不讳,这样我就再也不会问问题了。
谢谢。

最简单的方法是:

para.innerHTML = 'This is a paragraph. Here is a link: <a href="blabla">like so?</a>';
para.innerHTML='这是一个段落。这里有一个链接:';

只需使用
innerHTML
属性将HTML放在元素中,而不是
createTextNode
,以下是您需要的:

var para = document.createElement("P");
para.innerHTML = "This is a paragraph. Can I do this: <a \"blabla\">like so?</a>";
document.body.appendChild(para);
为了可读性、可维护性和可扩展性,我将使用这种方法,而不是使用
innerHTML
。当然
innerHTML
已经存在很长一段时间了,但仅仅因为它很简单并不意味着你就应该把它用在所有事情上

同样,如果您要学习JavaScript,您应该尽早熟悉DOM API。如果你现在掌握了API的诀窍,这将为你节省很多麻烦

//创建父对象并将其缓存在变量中。
var para=document.createElement(“p”);
//创建文本节点并将其附加到子节点。
//我们不需要缓存这个,因为我们不再访问它。
para.appendChild(document.createTextNode(“这是一个段落,我可以这样做吗:”);
//创建链接元素并将其缓存在变量中。
var link=document.createElement(“a”);
//设置链接的href属性。
link.setAttribute('href','blablabla');
//创建文本节点并将其附加到链接
//我们不需要缓存文本节点。
link.appendChild(document.createTextNode('like so?');
//将链接附加到父级。
第3段(链接);
//将父对象附加到主体。

文件.正文.附件(第6段)
para.innerHTML=“这是一个段落。您可以这样做:”你的方式似乎更复杂。如果我是一名经验丰富的程序员,或者我真的为此而上学,我可能会使用您的代码,因为您自己已经说明了这些原因。然而,我实际上是一个编码新手,现在我将坚持简单的答案。然而,这并不意味着我拒绝你的方式。如果由于某种原因,这个简单的解决办法使我失败,我会牢记在心。感谢你的帮助:)这其实很简单。我已经更新了我的答案,进一步细分了我的示例所做的工作,并且提供了与我的答案相关的所有文档的链接。@IhateJS您只有通过尽早开始才能养成良好的习惯。你不想发现5年后你仍然以“快速、简单的方式”做每件事,因为你从来没有学会正确的方法。
innerHTML
并非天生不安全,这取决于你如何使用它,而且它通常比使用DOM API提供更好的性能。当然,有些时候应该避免,但没有一个普遍的规则;在不同的情况下有利弊。在这个问题中给出的特定示例中——简单、硬编码的HTML——我会选择
innerHTML
——简单得多。@MattBrowne我完全不同意。我建议阅读我答案中的最后两个链接。应该鼓励新用户学习domapi,而不是那些会给他们带来麻烦的廉价技巧。过度使用innerHTML会让他们回到这里问更多的问题,这些问题本可以通过不使用innerHTML来解决。
var para = document.createElement("P");
para.innerHTML = "This is a paragraph. Can I do this: <a \"blabla\">like so?</a>";
document.body.appendChild(para);