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