2012-04-25 4 views

ответ

20

Я думаю, вы должны продлить свойство innerHTML, чтобы сделать это

element[0].innerHTML += "<ul><li><a href='url'></a></li></ul>"; 

некоторое объяснение:

  • [0] необходимо, потому что element коллекция
  • + = продлить внутреннийHTML и не перезаписывать
  • закрытие </a> нужны как некоторые браузеры позволяют только действительный HTML должен быть установлен в innerHTML
+1

Любовь + = трюк, спасибо! – Tim

1
element.innerHTML += "<ul><li><a href='url'></li></ul>"; 
6

из исходного кода JQuery:

append: function() { 
    return this.domManip(arguments, true, function(elem) { 
     if (this.nodeType === 1) { 
      this.appendChild(elem); //<==== 
     } 
    }); 
}, 

Обратите внимание, что для того, чтобы сделать его работу необходимо построить элемент DOM из строка, это делается с помощью функции jQuery domManip.

JQuery 1.7.2 source code

+0

document.body.appendChild ("

") // Ошибка: NOT_FOUND_ERR: DOM Exception 8 ... по крайней мере, я получаю это в Chrome -.- я думаю AppendChild будет работать только с реальными узлами –

+1

@TobiasKrogh: 'domManip' является значительным. – Ryan

+0

@TobiasKrogh. вы скопировали только немного кода ... – gdoron

7

Использование DOM манипуляции, а не HTML:

var list = document.createElement('ul'); 
var item = document.createElement('li'); 
var link = document.createElement('a'); 

link.href = 'url'; 

item.appendChild(link); 
list.appendChild(item); 
element.appendChild(list); 
+0

Согласен; это определенно то, что я предлагаю. –

+0

Элемент представляет собой коллекцию jQuery ... так что вам понадобится элемент [0] .appendChild (list); 'по моему скромному мнению –

+2

@TobiasKrogh: Я думаю, что если OP не хочет использовать jQuery для добавления элемент, тогда OP больше не использует jQuery. По моему скромному мнению. – Ryan

0

Самый простой способ повторить Jquery добавить метод в чистом JavaScript это с "insertAdjacentHTML"

var this_div = document.getElementById('your_element_id'); 
    this_div.insertAdjacentHTML('beforeend','<b>Any Content</b>'); 

Подробнее Инфо - MDN insertAdjacentHTML

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