2013-05-03 4 views
-1

Если у меня есть блок HTML-кода, я хочу использовать цикл для генерации <div item> и поместить его в тег body. Я знаю, как написать скрипт для написания html. Но как я могу сказать, что мой скрипт помещает его в тег тела?Создание HTML в теге JavaScript

Я использую 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> 

ответ

2

Ну менее желателен способ:

document.write(...) 

Или ..

document.body.appendChild(...) 

Если вы используете что-то как jquery y НУ может сделать:

$('body').append(...) 
+2

Это должно было быть самым дипломатическим выбором ответа, который я когда-либо видел: D +1 – Xotic750

2

С data является HTML:

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

Javascript и JQuery стали взаимозаменяемыми в эти дни ... raidenace

+3

@ Raidenace он отметил его бутстрап, который, я считаю, зависит от jQuery –

+1

@ Jean-BernardPellerin Да, любые функции Javascript определенно зависят от jQuery. Я думаю, что CSS не работает, но не уверен – Ian

5
var div = document.createElement("div"); 
document.body.appendChild(div); 
2

Попробуйте JQuery .append Вот ссылка ....

http://api.jquery.com/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> 
+0

Что делать, если OP не может использовать jquery? – Gabe

+1

@Gabe Тогда они не будут использовать Twitter Bootstrap ... – Ian

+1

Все еще вопрос помечен javascript. – Gabe

2

Во-первых, вам нужна функция, которая позволяет выбирать элементы по классам. document.querySelectorAll должен делать трюк, но он не поддерживается в некоторых браузерах (например, более старые версии IE).

Вы можете использовать функцию Node.appendChild для переместить выбранных элементов. Код будет выглядеть так:

var items = document.querySelectorAll("div.item"), i; 
for (i = 0; i < items.length; i++) { 
    document.body.appendChild(items[i]); 
} 
1

Вы можете перебрать свой массив, чтобы создать нужные вам div. Пример ниже показывает получение тега body и создание divs, а затем добавление их в тело. Вы также можете делать такие вещи, как установка 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); 
    } 
} 

Вот jsFiddle Пример:

JSFiddle

Если вы используете 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>')); 
    }); 
} 

Вот пример JSFiddle этого

JSFiddle jQuery Example

Смежные вопросы