Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 document.getElementById.innerHTML不工作_Javascript_Html - Fatal编程技术网

Javascript document.getElementById.innerHTML不工作

Javascript document.getElementById.innerHTML不工作,javascript,html,Javascript,Html,document.getElementById获取元素(即p标记),但只要 它写在里面,内容消失了。控制台上没有错误,但只要在p标记上写入任何内容,p标记中写入的内容就会消失 我找不到它不工作的任何原因,也不允许我使用php接受表单输入 var d=新日期(); var cday=d.getDay(); var cmonth=d.getMonth(); var cyear=d.getFullYear(); var日、月、年、日期、法师、雅格; 函数getDOB(){ var DOB=新日期(

document.getElementById
获取元素(即p标记),但只要 它写在里面,内容消失了。控制台上没有错误,但只要在p标记上写入任何内容,p标记中写入的内容就会消失

我找不到它不工作的任何原因,也不允许我使用php接受表单输入


var d=新日期();
var cday=d.getDay();
var cmonth=d.getMonth();
var cyear=d.getFullYear();
var日、月、年、日期、法师、雅格;
函数getDOB(){
var DOB=新日期(document.getElementById(“DOB”).value);
year=DOB.getFullYear();
month=DOB.getMonth();
day=DOB.getDay();
}
document.getElementById(“inp”).onclick=function execute(){
getDOB();
雅格=年;
如果(厘米月>=月){
mage=cm月-月;
}否则{
mage=12-(月-厘米月);
雅格=雅格-1;
}
如果(cday>=天){
dage=cday-天;
}否则{
法师=法师-1
dage=30-(日-cday);
}
document.getElementById(“output”).innerHTML=“您的年龄是”+dage+“天”+mage+“月”+yage+“年”;
}

提交


您的代码包含以前的错误,无法访问innerHTML

下面是一个错误:

未捕获引用错误:未定义cyear

您还必须添加
returnfalse编码到函数末尾,以防止表单提交。

date=新日期();//获取当前日期
cyear=date.getFullYear();//本年度
cmonth=date.getMonth()+1;//本月
cday=date.getDate();//今日
函数getDOB()
{
var DOB=新日期(document.getElementById(“DOB”).value);
year=DOB.getFullYear();
month=DOB.getMonth();
day=DOB.getDate();//getDate()函数返回当前日期
}
函数execute()
{
getDOB();
雅格=年;
如果(厘米月>=月)
{
mage=cm个月;
}
其他的
{
mage=12-(月/月);
雅格=雅格-1;
}
如果(cday>=天)
{
dage=cday-day;
}
其他的
{
法师=法师-1
dage=30-(日cday);
}
document.getElementById(“output”).innerHTML=“您的年龄是”+dage+“天”+mage+“月”+yage+“年”;
}

提交


您是否将js文件包含到您的网站中?我看不到任何脚本标记,所以我也喜欢用ready语句来包装,这样当页面完成时脚本就会执行loading@Fallenreaper:底部有一个
标记,这也使得等待
DOMContentLoaded
变得不必要。很抱歉,我对设计方面不熟悉,我习惯于页面某些部分的某些代码内容缺少所有
c*
变量、
cyear
cmonth
等。此外,不必要地使用全局变量,几乎每个变量都是全局变量。你的
年龄
可能只是一个
日期
对象,然后你就可以操作它,会更容易。对不起,我没有添加我编辑的问题的声明。你能解释一下什么不起作用,帮助他理解它的错误吗?这不仅仅是关于粘贴工作代码。在代码片段中,它工作得很好,但如果您将在本地系统中执行此代码,它将生成错误。因为在您的代码
文档中,getElementById(“inp”)
在HTML呈现之前执行。要克服这个问题,可以在单击按钮时调用execute()函数
submit
,您的输出将消失,因为默认情况下标记的类型为submit,所以当您单击submit时,您的页面将被刷新。要克服此问题,请使用type=“button”<代码>提交