Какие объекты JS могут быть добавлены через appendChild ()? - PullRequest
3 голосов
/ 06 января 2011

Я пытаюсь расширить DOM.Я "подкласс" из элемента Div:

var Subclass = function() {}
Subclass.prototype = document.createElement('div');
Subclass.constructor = Subclass;

var obj = new Subclass();
var obj.innerHTML = 'test';
document.body.appendChild(obj); // Exception: Node cannot be inserted ... point in the hierarchy

Так что, если прототип объекта, являющегося объектом DOM, не подойдет, каковы требования для вставки объекта в DOM?

Ответы [ 3 ]

0 голосов
/ 06 января 2011

Согласно спецификации W3C appendChild():

  1. Возвращает Node.
  2. Броски DOMException.
  3. Требуется один аргумент типа Node.

Из Спецификация :

Node appendChild(in Node newChild) raises(DOMException);
0 голосов
/ 10 января 2011

если вы хотите расширить только элементы div, то, возможно, вы можете сделать это с помощью

HTMLDivElement.prototype.newFunction = function () { //'this' will get that div dom }

, тогда он будет расширять только элементы div ... работает на FF, не знаю о других браузерах.

надеюсь, это поможет вам.

0 голосов
/ 06 января 2011

Это на самом деле работает в Firefox .. В любом случае.На самом деле он не будет создавать новые элементы при создании нового подкласса, но будет продолжать использовать тот же.

В любом случае, я бы сказал, что сами объекты DOM являются «особыми», так как только они могут бытьд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...