(貌似)相互依赖 HTML 'id' 属性
(Seemingly) Interdependent HTML 'id' Attributes
概览
大家好。我正在尝试自学一些 HTML/CSS/JavaScript,但我已经 运行 了解一些东西,这让我认为我误解了 'id' 属性的目的和功能的一个或多个方面在 HTML.
在下面的部分中,我概述了我要完成的工作、代码的相关部分以及(从我的角度来看)我得到的意外结果。
提前感谢您分享您的想法和专业知识;到目前为止,这个站点及其社区对我的编码之旅非常有价值。
我想要完成什么?
预期功能
当我单击该按钮时,我希望它触发我的 numberChange() 函数,该函数将 myNumber 变量转换为两位小数并将其存储在justTwoDecimals 变量。
预期显示
然后我希望 justTwoDecimals 的值单独出现在屏幕上(即我不希望更长的 myNumber 出现)。
我的代码
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var myNumber = 5.1234567;
var justTwoDecimals = 0;
function numberChange()
{
justTwoDecimals= parseFloat(myNumber).toFixed(2);
document.getElementById("myNumber").innerHTML=myNumber;
document.getElementById("justTwoDecimals").innerHTML=justTwoDecimals;
}
</script>
<button type="button" onClick="numberChange()">Click Here</button>
<p><u>Number With Just Two Decimals</u><br><a id="justTwoDecimals">Click the Button</a></p>
</body>
</html>
意外结果
没有变化的结果
使用上面的代码,我单击按钮,但 'Click the Button' 文本没有响应,并且没有按预期转换为“5.12”。
FirstResult
有变化的结果
当我在第 28 行添加代码时,justTwoDecimals 值按预期填充,但不幸的是 myNumber 值现在可见,用数字 :)
SecondResult
26. <button type="button" onClick="numberChange()">Click Here</button>
27.
28. <p><u>Long Number Value</u><br><a id="myNumber">Click The Button</a></p>
29. <p><u>Number With Just Two Decimals</u><br><a id="justTwoDecimals">Click the Button</a></p>
我的问题
答案可能就在眼前,但为什么 myNumber 值需要出现在屏幕上才能 justTwoDecimals 正确填充?
我认为整个 numberChange() 函数总是 运行ning,无论屏幕上是否出现任何值。
再次感谢!
问题出在这一行:
document.getElementById("myNumber").innerHTML=myNumber;
在您的原始示例中,没有带有 id="myNumber"
的元素,因此,您试图获取一个不存在的元素,它抛出一个错误,并停止执行该函数,下一行永远不会运行.
如果删除该行,则会得到预期的结果。上面一行计算出你要显示的值,下面一行显示DOM.
中的值
var myNumber = 5.1234567;
var justTwoDecimals = 0;
function numberChange() {
justTwoDecimals = parseFloat(myNumber).toFixed(2);
document.getElementById("justTwoDecimals").innerHTML = justTwoDecimals;
}
<button type="button" onClick="numberChange()">Click Here</button>
<p>Number With Just Two Decimals</p>
<p id="justTwoDecimals">Click the Button</p>
更改后的结果 示例运行,因为您将 myNumber
添加到 DOM,没有抛出异常,并且 justTwoDecimals
元素得到更新。
概览
大家好。我正在尝试自学一些 HTML/CSS/JavaScript,但我已经 运行 了解一些东西,这让我认为我误解了 'id' 属性的目的和功能的一个或多个方面在 HTML.
在下面的部分中,我概述了我要完成的工作、代码的相关部分以及(从我的角度来看)我得到的意外结果。
提前感谢您分享您的想法和专业知识;到目前为止,这个站点及其社区对我的编码之旅非常有价值。
我想要完成什么?
预期功能
当我单击该按钮时,我希望它触发我的 numberChange() 函数,该函数将 myNumber 变量转换为两位小数并将其存储在justTwoDecimals 变量。
预期显示
然后我希望 justTwoDecimals 的值单独出现在屏幕上(即我不希望更长的 myNumber 出现)。
我的代码
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var myNumber = 5.1234567;
var justTwoDecimals = 0;
function numberChange()
{
justTwoDecimals= parseFloat(myNumber).toFixed(2);
document.getElementById("myNumber").innerHTML=myNumber;
document.getElementById("justTwoDecimals").innerHTML=justTwoDecimals;
}
</script>
<button type="button" onClick="numberChange()">Click Here</button>
<p><u>Number With Just Two Decimals</u><br><a id="justTwoDecimals">Click the Button</a></p>
</body>
</html>
意外结果
没有变化的结果
使用上面的代码,我单击按钮,但 'Click the Button' 文本没有响应,并且没有按预期转换为“5.12”。
FirstResult
有变化的结果
当我在第 28 行添加代码时,justTwoDecimals 值按预期填充,但不幸的是 myNumber 值现在可见,用数字 :)
SecondResult
26. <button type="button" onClick="numberChange()">Click Here</button>
27.
28. <p><u>Long Number Value</u><br><a id="myNumber">Click The Button</a></p>
29. <p><u>Number With Just Two Decimals</u><br><a id="justTwoDecimals">Click the Button</a></p>
我的问题
答案可能就在眼前,但为什么 myNumber 值需要出现在屏幕上才能 justTwoDecimals 正确填充?
我认为整个 numberChange() 函数总是 运行ning,无论屏幕上是否出现任何值。
再次感谢!
问题出在这一行:
document.getElementById("myNumber").innerHTML=myNumber;
在您的原始示例中,没有带有 id="myNumber"
的元素,因此,您试图获取一个不存在的元素,它抛出一个错误,并停止执行该函数,下一行永远不会运行.
如果删除该行,则会得到预期的结果。上面一行计算出你要显示的值,下面一行显示DOM.
中的值var myNumber = 5.1234567;
var justTwoDecimals = 0;
function numberChange() {
justTwoDecimals = parseFloat(myNumber).toFixed(2);
document.getElementById("justTwoDecimals").innerHTML = justTwoDecimals;
}
<button type="button" onClick="numberChange()">Click Here</button>
<p>Number With Just Two Decimals</p>
<p id="justTwoDecimals">Click the Button</p>
更改后的结果 示例运行,因为您将 myNumber
添加到 DOM,没有抛出异常,并且 justTwoDecimals
元素得到更新。