我什么时候需要 document.getElementByID 的引号
When do I need quotes for document.getElementByID?
我有一个简单的脚本,可以将英寸的文本输入转换为另一个厘米的文本输入。但是,当我将其传递给我的函数时,我注意到我必须为传递给document.getElementByID的参数使用引号。我尝试了没有引号的newheightcm,但它失败了。有没有办法避免这种情况以保持两个参数的一致性,即两者都有引号或两者都没有引号?
<script>
function inchestocm(IDin, IDcm) {
var inches = IDin.value;
var centimeters = inches*2.54;
document.getElementById(IDcm).value = centimeters;
}
</script>
<input type="text" id="newheight" onchange="inchestocm(newheight,'newheightcm')">
<input type="text" id="newheightcm">
因为如果没有引号,您正在寻找在全局范围内定义的变量newheight
。一些浏览器做了一件坏事,说如果我没有带有这个 id 的变量,我会寻找一个具有该 id 的 DOM 元素。
因此,您传入的是具有该ID而不是字符串的DOM元素。这就是IDin.value
起作用的原因。
更好的方法是传入已更改元素的范围。
<input type="text" id="newheight" onchange="inchestocm(this,'newheightcm')">
这样,您就不会处理首先使代码运行的浏览器怪癖。
function inchestocm(IDin, IDcm) { var 英寸 = IDin.value; VaR 厘米 = 英寸*2.54; document.getElementById(IDcm).value = cmimeters; }
newheight
是 DOM 元素<input type="text" id="newheight" onchange="inchestocm(newheight,'newheightcm')">
因为代码中没有定义具有该名称的变量,请检查 epascarel 的答案
您可以将代码修改为
<script>
function inchestocm(IDin, IDcm) {
IDin = document.getElementById(IDin);
var inches = IDin.value;
var centimeters = inches*2.54;
document.getElementById(IDcm).value = centimeters;
}
</script>
<input type="text" id="newheight" onchange="inchestocm('newheight','newheightcm')">
<input type="text" id="newheightcm">
<input type="text" id="newheight" onchange="inchestocm(newheight,'newheightcm')">
在您的代码中,这两个参数是不同的,第一个是你尝试从中获取值的对象,第二个是你想要粘贴结果的字符串。不确定,但试试这个。
<script>
function inchestocm(IDin, IDcm) {
var inches = IDin.value;
var centimeters = inches*2.54;
IDcm.value = centimeters;
}
</script>
<input type="text" id="newheight" onchange="inchestocm(newheight,document.getElementById('newheightcm'))">
<input type="text" id="newheightcm">
您正在使用函数的参数,这就是您不能使用双引号的原因。如果使用 id 的直接名称,则将使用双引号。
相关文章:
- reactjs this.refs vs document.getElementById
- 如何通过adf中的document.getElementById获取inputText字段值
- 无法获取文档.GetElementById工作正常
- document.getElementById(“st”).click();不起作用
- Javascript:Can't使用getElementById获取元素
- 如何使用“;getElementById”;在一个循环中
- Javascript GetElementByID has no value
- document.getElementById并使用id名称
- document.getElementById在js中不起作用
- document.getElementById.style.backgroundImage not working
- 如何从document.getElementById()中获取UniqueID
- 从输入框、Javascript、getElementById获取值
- 什么'这个javascript代码getElementById有问题
- DOMDocument getelementbyid conflict?
- 如何从getelementbyid用javascript编写变量
- inline svg--getElementById在Opera中不起作用
- 在init function()中调用getElementById(“..”),而不是想用它做点什么的函数
- 将global.getelementbyid连接到单个变量中
- 未捕获的类型错误:未定义不是上的函数.GetElementByID
- document.getElementById(..) is null