Почему appendChild работает только при удалении docType

Когда я помещаю какое-либо объявление типа документа, например <!DOCTYPE html >, appendChild не работает.... Почему?

<form>
<script language="javascript">
    function function2() {
        var myElement = document.createElement('<div style="width:600; height:200;background-color:blue;">www.java2s.com</div>');
        document.forms[0].appendChild(myElement);
    } 
</script>


<button onclick="function2();"></button>

</form>

Я пытаюсь получить данные из родительского окна всплывающего окна... это возможно? Данные могут быть строковым литералом или значением, связанным с DOM с помощью jQuery .data()

1 ответ

Решение

Если у вас возникла эта проблема в IE, возможно, это связано с тем, что наличие объявления DOCTYPE переводит браузер в режим "соответствия стандартам". Это может привести к сбою кода, который не соответствует ожидаемым стандартам.

В вашем случае это, вероятно, потому что document.createElement не принимает фрагмент HTML - он принимает имя элемента, например document.createElement('div'),

Попробуйте заменить ваше тело функции чем-то вроде этого:

var myElement = document.createElement('div');
myElement.style.width = '600px';
myElement.style.height = '200px';
myElement.style.backgroundColor = 'blue';
myElement.appendChild(document.createTextNode('www.java2s.com'));
document.forms[0].appendChild(myElement);

Читайте об объектной модели документа здесь: https://developer.mozilla.org/en/DOM

Кроме того, jQuery удобен для простого создания элементов с использованием указанного вами синтаксиса.

Другие вопросы по тегам