我正在尝试动态让我的javascript在DOM中查找元素ID。
我目前正在使用此
var string = "retail";
document.getElementById('markup_'+string+'_percentage').value=z.toFixed(2)+"%";
变量“string”的值类似于“零售”
我认为这会给出一个串联的“markup_retail_percentage”字符串。
然而,它实际上将此作为错误消息:
document.getElementById("markup_"+string+"_percentage") is null
我也尝试过使用“。”和“*”运营商。
我的一个html元素
<input type="text" id="markup_retail_percentage" size="5" name="markup_retail_percentage" value="" readonly />
解!!!!
//using a new variable name to be passed to function
function percentage(elementid)
{
elementid = "markup_" + elementid;
elementid = elementid + "_percentage";
document.getElementById(elementid).value = "a value";
}
答案 0 :(得分:5)
我看到两个^ w三个四个可能性:
string
不包含您的想法percentage
之前有一个下划线。答案 1 :(得分:2)
看起来您在百分比之前缺少下划线
document.getElementById('markup_'+ string +'percentage')
我想你想要
document.getElementById('markup_'+ string +'_percentage')
答案 2 :(得分:1)
如果在Document
加载完成之前运行此代码,则您的标记将不会被完全解析,并且使用DOM方法无法访问具有该ID的Element
。
答案 3 :(得分:0)
解决方案:
function percentage(elementid)
{
elementid = "markup_" + elementid;
elementid = elementid + "_percentage";
document.getElementById(elementid).value = "a value";
}
我不知道它的工作原理:
- 会出现串联问题,不允许使用多个“+”运算符吗?
- 更改变量名称?
但它现在正在运作,所以感谢所有人!