как вы расширяете элемент стека в дом? - PullRequest
0 голосов
/ 19 апреля 2011

успешно расширяет Element с, например,

Element.prototype.ancestorByTagName = function( tagName ) { ... }

, но не может понять, как конкретно расширить элемент Select

, например, каждое из следующих сбоев:

Select.prototype.appendOption = function( value, label, select_value ) { ... }
Element.Select.prototype.appendOption = function( value, label, select_value ) { ... }

в убыток.

в этом случае имеет смысл ограничить новый метод appendOption его Select против всех Element с, поскольку только Select может иметь Option детей.Select add метод тоже довольно слабый.

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Не знаю, откуда вы взяли Element.Select, но это не нативный объект.Вместо этого вы хотите HTMLSelectElement ( ссылка MDC ).


Примечание : прочитайте эту статью , как указано вкомментарии, почему не для расширения DOM.

0 голосов
/ 19 апреля 2011

Вот то, что работало в Firefox 4

<script>
if (HTMLSelectElement)  HTMLSelectElement.prototype.addOption = function(text,value) {
  this.options[this.options.length]= new Option(value,text)
}
else alert("It's not called HTMLSelectElement")
window.onload=function() {
  document.getElementById('sel1').addOption("Hi","There")
}
</script>
<select id="sel1"></select>

и дал мне это в IE8

Сведения об ошибке веб-страницы

Message: 'HTMLSelectElement' is undefined
Line: 2
Char: 1
Code: 0
URI: file:///C:/TEMP/addoption.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...