Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .innerHTML无法将其存储到变量中_Javascript_Innerhtml - Fatal编程技术网

Javascript .innerHTML无法将其存储到变量中

Javascript .innerHTML无法将其存储到变量中,javascript,innerhtml,Javascript,Innerhtml,这是我的代码,不起作用-谢谢大家-第一个问题 <html> <head> <script type="text/javascript"> var x =document.getElementById("myElementId").innerHTML; </script> </head> <body> <div id="myElementId">24</div> <div> <

这是我的代码,不起作用-谢谢大家-第一个问题

<html>
<head>
<script type="text/javascript">
var x =document.getElementById("myElementId").innerHTML;


</script>

</head>

<body>
<div id="myElementId">24</div>
<div>

<script type="text/javascript">
if (x < 25) {
document.write("worked")
}
else {
document.write("didn't work")
}
</script>

var x=document.getElementById(“myElementId”).innerHTML;
24
如果(x<25){
文件。编写(“工作”)
}
否则{
文档。写入(“不起作用”)
}


对于更新也很抱歉,但是当div位于不在同一个域上的iframe中时,你们知道怎么做吗?感谢您除了首先创建元素之外

我相信innerHtml会返回一个字符串值 首先尝试解析它

var value  = document.getElementById("myElementId").innerHTML;
var x   = parseInt(value,10)
这条线

var x = document.getElementById("myElementId").innerHTML;
在ID为myElementId的元素存在之前执行,因此JavaScript无法找到它(
getElementById
返回
null

将其放在元素后面:

<div id="myElementId">24</div>
<script>
    var x = document.getElementById("myElementId").innerHTML;
</script>
24
var x=document.getElementById(“myElementId”).innerHTML;

HTML文档从上到下进行处理。

您正在运行这一行:

var x =document.getElementById("myElementId").innerHTML;
在元素存在之前。从头部删除脚本,并将该行放在以下内容之前:

if(x < 25) {
if(x<25){
相反。

将其更改为:

<html>
<head>


</head>

<body>
<div id="myElementId">24</div>
<div>

<script type="text/javascript">
var x =document.getElementById("myElementId").innerHTML;
if (x < 25) {
document.write("worked")
}
else {
document.write("didn't work")
}
</script>

24
var x=document.getElementById(“myElementId”).innerHTML;
如果(x<25){
文件。编写(“工作”)
}
否则{
文档。写入(“不起作用”)
}

运行脚本时,您试图查找的元素甚至不在页面上,这就是您遇到此问题的原因。

提示:当您提出问题时,请描述发生了什么,并描述您期望发生什么。“不起作用”不是问题描述。在您运行变量赋值时(第4行),DOM尚未完成加载,因此尚未创建MyLementID,使其无法访问。@Richard-JavaScript将强制字符串为数字,因此
“10”<20
等于
true
哦,糟糕,我不知道。谢谢!:)是的,它不工作。我在输出中看不到
工作了
,控制台显示
x
没有定义。我知道
var x=document.getElementById(“myElementId”).innerHTML;
将起作用。但其他代码将不起作用。非常感谢!这起作用,但现在我有另一个问题-div标记(24)之间的值动态更改-但当它确实更改时,if-else不会再次执行。是否有办法解决此问题?@Marco:创建一个测试该值的函数。无论何时更改该值,都要调用该函数。(并且不要调用
文档。加载页面后写入
,否则它将覆盖整个内容)。您可以将函数绑定到div的onchange事件:
document.getElementById(“myElementId”)。onchange=function(){//do stuff};
@Paul:我认为普通DOM元素(仅表单元素)不会触发
change
事件.还是我错了?@PaulPRO真棒!谢谢你-现在你知道如果是类而不是id怎么做吗?你知道如果是类而不是id怎么做吗?