2015-11-09 3 views
0

Это код, который я пытаюсь сделать работу«Uncaught HierarchyRequestError: новая линия тег после createTextNode

var aform = document.createElement("form"); 
     var model = document.createTextNode("xyz"); 
     var newLine = document.createElement('br'); 
     model.appendChild(newLine); 
     var status = document.createTextNode("abc"); 

     aform.appendChild(model); 
     aform.appendChild(status); 

     $("#someDiv").append(aform); 

, когда я пытаюсь запустить код он продолжает давать мне ошибку» неперехваченным HierarchyRequestError: Не удалось выполнить ' appendChild 'on' Node ': Этот тип узла не поддерживает этот метод. »

Может кто-нибудь спросит, почему isit не работает. Мне просто нужна новая строка после создания текстового узла xyz и затем abc. Спасибо.

+0

Вы не можете добавлять узлы к текстовому узлу. – Pointy

+0

@Pointy, так как я могу добавить новую строку после модели? Я хотел бы подражать форме html. Спасибо. – user3044240

+0

Добавьте первый текстовый узел, добавьте '
', затем добавьте второй текстовый узел. – Pointy

ответ

0
var model = document.createTextNode("xyz"); 
var newLine = document.createElement('br'); 
model.appendChild(newLine); 

Вы не можете сделать это, потому что ваш родитель TEXT узел, этот тип узла не может иметь ChildNodes.

var model = document.createTextNode("xyz"); 

так же, как:

var model.textContent = "xyz"; 

Я рекомендую вам использовать метод innerHTML, это произведения в десятки раз быстрее, без JQuery, например:

document.getElementById("someDiv").innerHTML = "<form>xyz<br>abc</form>". 

Или код (фиксированный):

var aform = document.createElement("form"); 
     var model = document.createTextNode("xyz"); 
     var newLine = document.createElement('br'); 
     var status = document.createTextNode("abc"); 

     aform.appendChild(model); 
     aform.appendChild(newLine); 
     aform.appendChild(status); 

     $("#someDiv").append(aform); 
1

Вы можете сделать все это с помощью jQuery , Так как вы в любом случае его использования:

$("#someDiv").append("<form>xyz<br>abc</form>"); 
+0

это хороший метод, но я думаю, что это было бы слишком громоздким, если бы я должен был создать длинную форму со всеми обычными вариантами, такими как submit, action и т. Д. Не лучшее решение для меня, но спасибо в любом случае. – user3044240

+1

@ user3044240, вы должны включить все свои условия в свой вопрос, чтобы люди могли предоставить полезные ответы. Но в любом случае вы используете jQuery в любом случае, поэтому можете использовать его. Если вы создаете большую форму, вам будет намного лучше использовать систему шаблонов. – Pointy

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