Почему appendChild работает только при удалении docType - PullRequest
0 голосов
/ 09 июля 2010

Когда я помещаю какое-либо объявление типа документа, например <!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 Ответ

1 голос
/ 09 июля 2010

Если у вас возникает эта проблема в 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 удобен для простого создания элементов с использованием указанного вами синтаксиса.

...