Я не могу найти правдоподобное объяснение для следующего поведения кода javascript. Я не очень хорошо знаком с javascript, и если бы следующий код был действительно действительным.Почему document.DOM-object.property null в устаревшем приложении
В мигрировали унаследованного приложения есть код вдоль этих линий:
function myFunctionName(name)
{
for(k=0; k < document.budget_sections.length; ++k) {
//...do something
}
}
Обратите внимание document.budget_sections.length
части. В производстве этот код вызывает ошибку, говорящий, что не может получить доступ к значению длины null. В моей среде Dev это работает нормально. Поскольку budget_sections
является Id элемента формы (<form id="budget_sections" method="post" runat="server">
) Я изменил код с синтаксисом, который известен мне:
function myFunctionName(name)
{
var form = document.getElementById("budget_sections");
for(k=0; k < form.length; ++k) {
//...do something
}
}
Этот синтаксис/нотация используется на протяжении всего приложения и работает на большинстве страниц. Вопрос для меня здесь: почему и до сих пор работает этот старый код и почему он может прорваться? Я никогда не читал нотацию document.DOM-object.xxx
, и я не могу найти документацию об этом.
Это очищает вещи немного. Но я правильно определяю Id. Он определяется как '
Вы можете сделать снимок. Создайте форму с 'id =" budget_sections "и другой формой с' name = "budget_sections". Спецификация DOM позволяет использовать только атрибут name, а не ID – mohamedrias