在html页面中嵌入javascript节的位置
问题是,我不知道在html页面中嵌入javascript的位置,无论是在页眉部分还是正文部分 例1:在html页面中嵌入javascript节的位置,javascript,Javascript,问题是,我不知道在html页面中嵌入javascript的位置,无论是在页眉部分还是正文部分 例1: <html> <head> <title>events</title> <script> document.getElementById("b").onclick=function(){displayDate()}; function displayDa
<html>
<head>
<title>events</title>
<script>
document.getElementById("b").onclick=function(){displayDate()};
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
</head>
<body>
<p id="demo"></p>
<button id="b">new</button>
</body>
</html>
事件
document.getElementById(“b”).onclick=function(){displayDate()};
函数displayDate()
{
document.getElementById(“demo”).innerHTML=Date();
}
新的
在上面的示例中,我在head部分放置了脚本标记,但它不起作用
示例:2
<html>
<head>
<title>events</title>
<script>
function upper()
{
var x=document.getElementById("t");
x.value=x.value.toUpperCase();
}
</script>
</head>
<body >
enter some text:<input type="text" id="t" onChange="upper()"/>
</body>
</html>
事件
函数上限()
{
var x=document.getElementById(“t”);
x、 value=x.value.toUpperCase();
}
输入一些文本:
在第二个示例中,我将javascript放在标题部分,它工作正常。第一个示例演示了在第二个示例中,当输入数据时,单击按钮日期将显示在文本框中,如果我们从框中出来,框中的字母将转换为大写 你可以把它放在头上。问题是你的例子不一样。第一个不起作用,因为当前日期是通过调用
date()
检索的,而当前日期应该是newdata().getDate()
。第二个示例之所以有效,是因为代码是有效的。为了让代码更具可读性,我更喜欢将JavaScript放在head部分。如果需要从那里访问元素,请使用窗口。onload
事件:
<head>
<title>events</title>
<script type="text/javascript">
window.onload = function() {
document.getElementById("b").onclick = function() {
displayDate();
};
};
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>
</head>
事件
window.onload=函数(){
document.getElementById(“b”).onclick=function(){
显示日期();
};
};
函数displayDate()
{
document.getElementById(“demo”).innerHTML=Date();
}
这就行了
您的第二个示例之所以有效,是因为您刚刚定义了一个函数,没有尝试访问任何元素。您遇到的问题是,您试图在将元素加载到DOM之前引用它 将脚本放入HEAD标记时,dom尚未加载,document.getElementById将找不到您要查找的内容 你有几个不同的选择来处理这个问题。您可以将脚本放在页面的末尾,这将适用于这里的小示例 也许更好的选择是看看如何学习/使用jquery或其他js实用程序。Jquery通过为您提供一个“就绪”事件,使解决这个问题变得容易。此就绪事件将在DOM完全加载时触发。因此:
$(document).ready(
function()
{
$("#demo").html((new Date()).toString());
});
这就是你真正需要的。使用这种方法,脚本在页面上的位置无关紧要。您应该将它放在正文的末尾,就在
之前。不需要jQuery,只需这样,窗口。onload
与跨浏览器一样易于使用。这是事实,但很明显,阴影向导对javascript来说是新的,因此,学习如何使用jquery是一个很好的建议,imho。新的,比如12年的经验?请不要把它私人化。不,不,我根本不想把它私人化。在我看来,这个问题的本质就像你是js的新手一样,这没什么错。这类问题在刚学会做事的人身上很常见,如果我误解了,我很抱歉。了解DOM生命周期、js加载和流通常是进入js学习的第一件事,所以我想你可能会理解我的困惑。我没有问这个问题,我对您的答案发表了评论。您的解决方案有效,但我不理解您的解释。我无法理解您为什么只在window.onload中放置特定的代码块,为什么不在total脚本中,并且您提到在第二个示例中,没有访问任何元素,但是访问了文本框。@user22002window.onload
块应该只包含访问DOM的代码。所有的函数定义和其他不访问元素的代码最好是独立的。谢谢,我理解了。你能给我推荐一个学习javascript的好网站吗?因为我刚刚开始学习learning@user22002:,@user22002除了Felix建议之外,您还有两个基本选项。如果您想遵循标准并成为“优秀”的JavaScript程序员(而不仅仅是编写有效代码的程序员),那么您会做得更好。如果你只想以最快的方式学习,而不想遵循标准或良好的实践,那么你就有了臭名昭著的方法。你的选择。