【发布时间】:2013-01-16 22:26:30
【问题描述】:
我有一个 javascript 函数,我向其传递了一个参数。该参数表示我的网页中一个元素(隐藏字段)的 id。我想改变这个元素的值。
function myFunc(variable){
var s= document.getElementById(variable);
s.value = 'New value'
}
当我这样做时,我收到一个错误,因为对象为空,所以无法设置值。但我知道该对象不为空,因为我在浏览器生成的 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'
请问我该如何解决这个问题
编辑
我正在为其设置值的元素是隐藏字段,并且 id 是在页面加载时动态检测的。我已经尝试在 $(document).ready 函数中添加这个但没有工作
【问题讨论】:
-
让我们看看你在哪里调用了这个函数(从你提供的代码来看,它没有名字)。
-
什么是变量?以及如何调用未命名的函数?
-
当您在这种情况下进行
alert()或console.log()诊断时,您应该始终用一些标记字符包装值,这样您就可以判断是否有杂散空间字符串中的字符。所以:alert("[" + x + "], [" + y + "]"); -
请在 jsfiddle.net 上展示一个发生这种情况的例子 - 你问的不是真的。