2015-02-16 2 views
0

При запуске моего скрипта я получаю «Невозможно получить значение свойства« innerHTML »: объект имеет значение null или undefined».Как инициализировать параметр в javascript? document.getElementById («DataAreaXa»)

Из того, что я нашел на этом форуме, мне нужно инициализировать параметр.

У меня есть несколько кнопок в моем приложении <input id=runbutton type="button" value="&#8594;" onClick="runScriptUp(DataArea1a,DataArea1b,arr1)"> до DataArea7a,DataArea7b,arr7.

функции

OnClick срабатывают и пропускают параметры:

function runScriptUp(DataAreaXa,DataAreaXb,arrX){ 
document.getElementById("DataAreaXa").innerHTML = arrX[2]; 
document.getElementById("DataAreaXb").innerHTML = arrX[1]*arrX[2]; 
} 

Функция не извлекает данные из 7 массивов я имею var arr1 = ["Incidents", Sinc, 0, 0];, снова до arr7 (. ArrX [1] имеет значение, присвоенное в var с)

и он должен размещать значения DataAreaXa и DataAreaXb в соответствующие span с значениями после onclick<span id=DataArea1a name=a> и <span id=DataArea1 name=a> еще до DataArea7a и DataArea7b.

К сожалению, я получаю «Невозможно получить значение свойства« innerHTML »: объект имеет значение null или undefined».

Я попытался инициализировать DataAreaXa и DataAreaXb в onload раздел, но его 14 раз бессмысленно. Я тоже пытался с for, но я думаю, что я не делаю это правильно.

for (X=1; X<7;X++){ 
document.getElementById("DataAreaXa") 
document.getElementById("DataAreaXb") 
} 

или даже

for (X=1; X<7;X++){ 
document.getElementById("DataArea"+X+"a") 
document.getElementById("DataArea"+X+"b") 
} 

Могу ли я использовать даже функцию, чтобы запустить его в 7 раз для обоих Xa и Xb вместо записи в 14 раз?

Спасибо. м

ответ

0

Во-первых вам нужно кавычки вокруг входов ид

<input id="runbutton" type="button" value="&#8594;" onClick="runScriptUp(DataArea1a,DataArea1b,arr1)"> 

Во-вторых, где ваш элемент с идентификатором «DataAreaXa» вы не имеете, что где-нибудь в коде или объяснить. Вы объясняете, как у вас есть промежутки, называемые так, но вы не предоставили никакого кода, подтверждающего это. Поэтому, когда вы делаете

document.getElementByID("DataArea"+X+"a") 

Это равно undefined, потому что вы не создали элемент с этим идентификатором.

В-третьих вы цикл нужно будет идти к X<=7 если вы хотите включить 7.

В-четвертых, вы должны инициализировать переменную, используемую в цикле.

for(var X=0;X<=7;X++) 

Браузер может игнорировать ошибки 1 3 и 4, но если у вас нет элемента с идентификатором DataArea1a, то вы получите неопределенный объект нуль вернулся из document.getElementByID

+0

Нет, что они передают, является DataArea1a. «DataArea1a» - это переменная, которая является строкой. –

+0

'DataAreaXa' - это параметр, который изменяется при каждом нажатии на кнопку« onclick ». Undefined - это 'function runScriptUp (DataAreaXa, DataAreaXb, arrX) { document.getElementById (" DataAreaXa "). InnerHTML = arrX [2];' – Mykail

+0

Ждать, что у вас есть несколько нажатий кнопки? в какой момент вы это поняли? возможно, вам стоит просто поместить его в jsfillde или codepen, а затем мы сможем найти ошибки и исправить их, потому что вопрос, который вы задали, - это не то, о чем вы думаете. Просто предоставьте нам код, который у вас есть. –

0

Попробуйте заменить в ваша функция

document.getElementById("DataAreaXa").innerHTML = arrX[2];

по

document.getElementById(DataAreaXa).innerHTML = arrX[2];

Надеюсь, это поможет!

+0

Nope: '(Спасибо за попытку. – Mykail

Смежные вопросы