Javascript получить элемент по идентификатору и установить значение
у меня есть функция javascript, в которую я передаю параметр. Параметр представляет идентификатор элемента (скрытое поле) на моей веб-странице. Я хочу изменить значение этого элемента.
function myFunc(variable){
var s= document.getElementById(variable);
s.value = 'New value'
}
когда я делаю это, я получаю сообщение об ошибке, что значение не может быть установлено, поскольку объект имеет значение null. Но я знаю, что объект не является нулевым, потому что я вижу его в html-коде, сгенерированном браузером. В любом случае, я попробовал следующий код для отладки
function myFunc(variable){
var x = variable;
var y = 'This-is-the-real-id'
alert(x + ', ' + y)
var s= document.getElementById(x);
s.value = 'New value'
}
когда предупреждающее сообщение появляется, оба параметра одинаковы, но я все равно получаю ошибку. Но все работает отлично, когда я делаю
var s= document.getElementById('This-is-the-real-id');
s.value = 'New value'
как я могу это исправить, пожалуйста
EDIT
элемент, для которого я устанавливаю значение, является скрытым полем, а идентификатор определяется динамически по мере загрузки страницы. Я попытался добавить это в $(документ).готовая функция, но не работает
5 ответов:
Если myFunc (переменная) выполняется до вывода textarea на страницу, вы получите ошибку исключения null.
<html> <head> <title>index</title> <script type="text/javascript"> function myFunc(variable){ var s = document.getElementById(variable); s.value = "new value"; } myFunc("id1"); </script> </head> <body> <textarea id="id1"></textarea> </body> </html> //Error message: Cannot set property 'value' of null
Итак, убедитесь, что ваш textarea существует на странице, а затем вызовите myFunc, вы можете использовать window.onload или $(документ).готовая функция. Надеюсь, это поможет.
дано
<div id="This-is-the-real-id"></div>
затем
function setText(id,newvalue) { var s= document.getElementById(id); s.innerHTML = newvalue; } window.onload=function() { setText("This-is-the-real-id","Hello there"); }
будет делать то, что вы хотите
дано
<input id="This-is-the-real-id" type="text" value="">
затем
function setValue(id,newvalue) { var s= document.getElementById(id); s.value = newvalue; } window.onload=function() { setValue("This-is-the-real-id","Hello there"); }
будет делать то, что вы хотите
<html> <head> <script> function updateTextarea(element) { document.getElementById(element).innerText = document.getElementById("ment").value; } </script> </head> <body> <input type="text" value="Enter your text here." id = "ment" style = " border: 1px solid grey; margin-bottom: 4px;" onKeyUp="updateTextarea('myDiv')" /> <br> <textarea id="myDiv" ></textarea> </body> </html>
попробуйте, как показано ниже, это будет работать...
<html> <head> <script> function displayResult(element) { document.getElementById(element).value = 'hi'; } </script> </head> <body> <textarea id="myTextarea" cols="20"> BYE </textarea> <br> <button type="button" onclick="displayResult('myTextarea')">Change</button> </body> </html>