У меня есть функции 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'
Как я могу исправить это, пожалуйста
Редактировать
Элемент, для которого я устанавливаю значение скрытого поля и идентификатор дет динамически, при загрузке страницы. Я попробовал добавил Это в $(документ).готов работать, но не работает
Если myFunc(переменная) выполняется перед текстовой области отображается на странице, вы получите значение 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
Итак, убедитесь, что ваш компьютер существует на странице, а затем вызвать myFunc, вы можете использовать окно.onload или $(документ).готовая функция. Надеюсь, что это's полезн.
Учитывая
<div id="This-is-the-real-id"></div>
тогда
function setText(id,newvalue) {
var s= document.getElementById(id);
s.innerHTML = newvalue;
}
window.onload=function() { // or window.addEventListener("load",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");
}
будет делать то, что вы хотите
в
function setContent(id, newvalue) {
var s = document.getElementById(id);
if (s.tagName.toUpperCase()==="INPUT") s.value = newvalue;
else s.innerHTML = newvalue;
}
window.addEventListener("load", function() {
setContent("This-is-the-real-id-div", "Hello there");
setContent("This-is-the-real-id-input", "Hello there");
})
<div id="This-is-the-real-id-div"></div>
<input id="This-is-the-real-id-input" type="text" value="">
в
<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>
Для каждого типа элемента, вы можете использовать специальный атрибут, чтобы установить значение. Е. Г.:
<div id="theValue1"></div>
window.document.getElementById("theValue1").innerText = "value div";
<input id="theValue2"></input>
window.document.getElementById("theValue2").value = "value input";