2016-12-23 2 views
-4

следующие функцииИспользование innerHTML для частичного HTML

<script> 
function new_par() 
{ 
var beginning="<input id="; 
document.getElementById("debug").innerHTML=beginning; 
} 
</script> 

не производит никакого вывода, хотя, если я удалить «<» знак, что он делает. Предположительно, javascript избегает вывода, который уничтожит html-страницу, но будет ли в любом случае принудительный вывод?

+0

дикое предположение: Ваш Javascript вывода в формате HTML, а не обычный текст? –

+1

Правильно отформатируйте свой код, добавив новую строку до и после нее, выделив ее и нажав ctrl + k. – Carcigenicate

+0

В источнике html ничего нет. –

ответ

0

Вы назначаете его свойству innerHTML узла. Когда вы вставляете строку в DOM, она пытается ее проанализировать, как если бы это был HTML. Если бы вы просто добавили его как текстовый узел, он появился бы.

var beginning="<input id=''"; 
document.body.textContent = beginning; 

https://jsfiddle.net/2patzyo1/

Редактировать: на раз, глядя на ваш вопрос, если вы пытается, чтобы получить входной элемент появится на странице, то строка вы используете не является правильным HTML, потому что вы никогда не закрывали тег. Когда браузер запускается в него, он пытается разобрать и отобразить его, но поскольку он недействителен, он отказывается. Это будет работать:

var beginning="<input id=''>"; 
document.body.innerHTML = beginning; 

https://jsfiddle.net/2patzyo1/1/

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