【问题标题】:dynamically create div element using javascript使用javascript动态创建div元素
【发布时间】:2015-07-13 06:05:46
【问题描述】:

我正在尝试使用 javascript 动态创建 html 元素。例如,在我的“finalXML”文件中创建段落时,我使用以下语法:

function paragraph (finalXML, value)

{

var code1 = 'var para = document.createElement("p");
var t = document.createTextNode("This is the paragraph that should be displayed");
para.appendChild(t);
document.body.appendChild(para);'

return String(finalXML).replace(/add_paragraph_here/g,code1);
}

我将如何使用单选按钮创建一个 div,例如,使用相同的过程?任何人都可以帮助我使用该语法吗?

【问题讨论】:

  • @KevalBhatt,我有一个仅包含占位符文本的 html 文档(例如“radio_buttons_go_here”)。我有一个单独的 javascript 文档来动态创建单选按钮。我需要 2 组,每组 5 个单选按钮。我不确定你引用的帖子是否做同样的事情。请问有什么想法吗?
  • 您不能在这样的字符串文字中使用回车符。如果您正在进行简单的字符串替换,则将“radio_buttons_go_here”替换为所需的标记,例如"<input type=radio value='foo'>....<input type=radio value='bar'>".
  • @RobG 我正在尝试用一组 5 个具有不同值的单选按钮替换字符串(是、否、也许等......)。我正在考虑创建一个函数,然后我可以调用两次来为所需的 2 组 5 个单选按钮执行此操作。当您说“简单字符串替换”时,您是否认为在这种情况下该功能是不必要的?在函数中声明变量后,我似乎无法确定 div 创建单选按钮的语法。有什么想法吗?

标签: javascript html dynamic


【解决方案1】:

看这个例子:http://jsfiddle.net/kevalbhatt18/owuqm8j8/

 var radio_home = document.getElementById("radio_home");

 function makeRadioButton(options) {
     var div = document.createElement("div");
     for (var i = 0; i < options.length; i++) {
         var label = document.createElement("label");
         var radio = document.createElement("input");
         radio.type = "radio";
         radio.name = options[i].name;
         radio.value = options[i].value;
         label.appendChild(radio);
         label.appendChild(document.createTextNode(options[i].text));
         div.appendChild(label);
         }
       radio_home.appendChild(div);
 }
 var options = [{
     name: "first",
     value: "yes",
     text: "yes"
 }, {
     name: "first",
     value: "no",
     text: "no"
 }]
  var options2 = [{
     name: "second",
     value: "ohhh yes",
     text: "ohhh yes"
 }, {
     name: "second",
     value: "ohhh no",
     text: "ohhh no"
 }]
makeRadioButton(options);
makeRadioButton(options2);

【讨论】:

  • 谢谢。我将 div id 放在我的 html 文档中,并通过节点 js 运行 javascript 文件。它在“var radio_home = document.getElementById("radio_home");”下给了我一个“文档未定义”错误线。如何修复或绕过该错误?有什么想法吗?
  • 做一件事 radio_home.appendChild(div);替换为 document.body.appendChild(div);'因为在您的情况下,您要在正文中附加元素,您可以提供您的 implementationIon 吗?
  • 我按照您的建议替换了代码,但我仍然收到“文档未定义”错误。浏览这里的一些类似帖子,似乎节点不支持 DOM API。对此有任何想法或解决方法吗?我见过的都没有工作。感谢您的帮助。
  • @HumaniTech 您能否提供您实施的内容。它认为当您当时调用文档时,您的 windows.document 未初始化stackoverflow.com/questions/24647839/…
  • @HumaniTech 我问了你 3 次请提供代码你实现了什么,以便我可以查看这个例子jsfiddle.net/kevalbhatt18/owuqm8j8/1
猜你喜欢
  • 2011-07-29
  • 1970-01-01
  • 2013-09-29
  • 2012-08-30
  • 2017-03-03
  • 2013-12-30
  • 2018-01-07
  • 2017-08-11
  • 1970-01-01
相关资源
最近更新 更多