通过JavaScript在标记内生成HTML

通过JavaScript在标记内生成HTML,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,如果我有一块html代码,我想使用一个循环来生成,并将其放在body标记中。我知道如何编写脚本来编写html。但是我如何告诉脚本将其放置在body标记中 我正在使用Boostrap,而且我对jquery和纯js解决方案都持开放态度 <body> <div id="myCarousel" class="carousel slide"> <div class="carousel-inner"> <div class="item a

如果我有一块html代码,我想使用一个循环来生成
,并将其放在body标记中。我知道如何编写脚本来编写html。但是我如何告诉脚本将其放置在body标记中

我正在使用Boostrap,而且我对jquery和纯js解决方案都持开放态度

<body>
<div id="myCarousel" class="carousel slide">
      <div class="carousel-inner">
        <div class="item active">
          <img src="../assets/img/examples/slide-01.jpg" alt="">
          <div class="container">
            <div class="carousel-caption">
              <h1>Example headline.</h1>
              <p class="lead">vehicula ut id elit.</p>
            </div>
          </div>
        </div>

        <div class="item">
          <img src="../assets/img/examples/slide-03.jpg" alt="">
          <div class="container">
            <div class="carousel-caption">
              <p class="lead">ies vehicula ut id elit.</p>
            </div>
          </div>
        </div>
      </div>
    </div>
<body>

示例标题。

车辆ut id精英

ies车辆ut id精英


,其中
数据
为html:

$('body').append(data);

不太理想的方式是:

document.write(...)
或者

如果您使用的是jquery之类的工具,则可以执行以下操作:

$('body').append(...)
尝试jQuery.append 这里有一个链接

仅使用Javascript:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para=document.createElement("p");
var node=document.createTextNode("This is new.");
para.appendChild(node);

var element=document.getElementById("div1");
element.appendChild(para);
</script>

这是一个段落

这是另一段

var para=document.createElement(“p”); var node=document.createTextNode(“这是新的”); 子节点(节点)段; var元素=document.getElementById(“div1”); 要素.附件(第6段);
您可以使用


首先,您需要一个函数,该函数允许您按类选择元素。应该可以做到这一点,但某些浏览器不支持它(例如旧版本的IE)

然后可以使用该功能移动选定的图元。代码如下所示:

var items = document.querySelectorAll("div.item"), i;
for (i = 0; i < items.length; i++) {
    document.body.appendChild(items[i]);
}
var items=document.querySelectorAll(“div.item”),i;
对于(i=0;i
您可以在阵列上循环创建所需的div。下面的示例显示如何获取body标记并创建div,然后将它们添加到body中。您还可以做一些事情,例如设置innerHTML和您想要的任何属性

var createDivs = function() {
    var body = document.body;
    for(var i = 0, l = 10; i < l; i++)
    {
        var div = document.createElement('div');
        div.innerHtml = 'Some Text'; //set inner html of the div
        div.setAttribute('class', 'testClass'); //set attributes of the div
        body.appendChild(div);
    }
}
var createDivs=function(){
var body=document.body;
对于(变量i=0,l=10;i
下面是一个JSFIDLE示例:

如果您使用的是jQuery,那么可以通过以下方式完成

var createDivs = function() {
    var myArray = [1,2,3,4,5,6,7,8,9,10];
    var body = $('body');
    $.each(myArray,function(index, value) {
        body.append($('<div class="testClass" id="' + index + '">Some Text</div>'));
    });
}
var createDivs=function(){
var myArray=[1,2,3,4,5,6,7,8,9,10];
变量body=$('body');
$.each(myArray,函数(索引,值){
body.append($('sometext'));
});
}
下面是一个JSFIDLE的例子


javascript和jquery现在已经可以互换了…@Raidenace他给它贴上了bootstrap标签,我相信这取决于jquery@Jean-BernardPellerin是的,任何Javascript特性都肯定依赖于jQuery。我认为CSS没有,但是没有sure@Raidenace-发件人:“请注意,所有JavaScript插件都要求包含jQuery。”Chillax,所有喜欢jQuery的人!!:)如果OP不能使用jquery怎么办?问题仍然被标记为javascript。@Gabe它也被标记为“twitter引导”,这意味着使用了jquery。也就是说,这个问题并不完全正确。我确实认为其他答案(提供了几个选项,而不仅仅是jQuery)更完整/更好。@Gabe-它现在被标记为“jQuery”。因为此人使用的是引导,所以jQuery是隐含的。有关更多详细信息,请参阅。尽管如此,通过展示如何用JavaScript解决这个问题,这个答案仍然可以得到改进,但我不认为这是回答这个特定问题所必需的+1@Gabe-同意,但既然我们不应该假设他正在使用jQuery,那么假设他没有似乎是矛盾的。理想情况下,我更希望op回来澄清一下,我给op留下了关于这一点的评论。然而,如果他不更新我们,我认为我们不能仅仅因为jQuery的答案模棱两可就诋毁它。简而言之,JavaScript答案是最理想的,但是使用op已经导入的工具的答案不一定是错误的。看起来他编辑他的帖子是为了澄清。希望这能有所帮助。这一定是我见过的回答中最为圆滑的选择:D+1
var items = document.querySelectorAll("div.item"), i;
for (i = 0; i < items.length; i++) {
    document.body.appendChild(items[i]);
}
var createDivs = function() {
    var body = document.body;
    for(var i = 0, l = 10; i < l; i++)
    {
        var div = document.createElement('div');
        div.innerHtml = 'Some Text'; //set inner html of the div
        div.setAttribute('class', 'testClass'); //set attributes of the div
        body.appendChild(div);
    }
}
var createDivs = function() {
    var myArray = [1,2,3,4,5,6,7,8,9,10];
    var body = $('body');
    $.each(myArray,function(index, value) {
        body.append($('<div class="testClass" id="' + index + '">Some Text</div>'));
    });
}