尝试使用 jquery 加载随机图像 -- 不工作
Trying to load random images using jquery -- Not working
我是 javascript 和 jquery 的新手。我想在加载页面时加载随机图像。我找到了一些看起来非常简单的代码,但我似乎无法让它工作,而且我不知道我做错了什么。我觉得一切都很好....
我的HTML如下:
<html xmlns="http://www.23.org/19999/xhtml">
<head>
<title>A Site Just For Me!</title>
<script type="text/javascript" src="jquery.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=Economica:400,700|Francois+One' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="myjs.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="me_css.css">
</head>
<body >
<div class="jumbotron">
<div class="container">
<div class="greeting"></div>
<div id="happypic"></div>
<div id="banner"></div>
<div id="banner2"></div>
</div>
</div>
</body>
</html>
这是我的 javascript 文件:
// A $( document ).ready() block.
$( document ).ready(function() {
});
//This is where i set up my greeting.
var nowDate=new Date();
var nowHour=nowDate.getHours();
var greeting;
if (nowHour<11)
{
//good morning
greeting="Good morning";
}
else if (nowHour<16)
{
//good afternoon
greeting="Good afternoon";
}
else
{
//good evening
greeting="Good evening";
}
//document.write("<center><h1>"+greeting+", Loser!");//
// This is where i put my random picture chooser
// pictures
//random image experiment
var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
$('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');
var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
$('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');
$('<h1>Hello</h1>').appendTo('#banner2');
任何见解将不胜感激...
问题是您的 jQuery 代码在 就绪函数 之外,因此它是 运行 在 DOM 加载之前,因此无法添加图像,因为 HTML 页面中尚不存在这些元素。
一种方法是将 myjs.js
文件的加载放在 </body>
之前,以便在执行时加载项目(您需要删除 jQuery.ready 代码)或你可以像这样把它放在 ready 块中:
$( document ).ready(function() {
//This is where i set up my greeting.
var nowDate=new Date();
var nowHour=nowDate.getHours();
var greeting;
if (nowHour<11)
{
//good morning
greeting="Good morning";
}
else if (nowHour<16)
{
//good afternoon
greeting="Good afternoon";
}
else
{
//good evening
greeting="Good evening";
}
//document.write("<center><h1>"+greeting+", Loser!");//
// This is where i put my random picture chooser
// pictures
//random image experiment
var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
$('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');
var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
$('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');
$('<h1>Hello</h1>').appendTo('#banner2');
});
最好的方法是将 jQuery 的加载和您的 JS 文件移动到 html 代码的底部。
我是 javascript 和 jquery 的新手。我想在加载页面时加载随机图像。我找到了一些看起来非常简单的代码,但我似乎无法让它工作,而且我不知道我做错了什么。我觉得一切都很好....
我的HTML如下:
<html xmlns="http://www.23.org/19999/xhtml">
<head>
<title>A Site Just For Me!</title>
<script type="text/javascript" src="jquery.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=Economica:400,700|Francois+One' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="myjs.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="me_css.css">
</head>
<body >
<div class="jumbotron">
<div class="container">
<div class="greeting"></div>
<div id="happypic"></div>
<div id="banner"></div>
<div id="banner2"></div>
</div>
</div>
</body>
</html>
这是我的 javascript 文件:
// A $( document ).ready() block.
$( document ).ready(function() {
});
//This is where i set up my greeting.
var nowDate=new Date();
var nowHour=nowDate.getHours();
var greeting;
if (nowHour<11)
{
//good morning
greeting="Good morning";
}
else if (nowHour<16)
{
//good afternoon
greeting="Good afternoon";
}
else
{
//good evening
greeting="Good evening";
}
//document.write("<center><h1>"+greeting+", Loser!");//
// This is where i put my random picture chooser
// pictures
//random image experiment
var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
$('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');
var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
$('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');
$('<h1>Hello</h1>').appendTo('#banner2');
任何见解将不胜感激...
问题是您的 jQuery 代码在 就绪函数 之外,因此它是 运行 在 DOM 加载之前,因此无法添加图像,因为 HTML 页面中尚不存在这些元素。
一种方法是将 myjs.js
文件的加载放在 </body>
之前,以便在执行时加载项目(您需要删除 jQuery.ready 代码)或你可以像这样把它放在 ready 块中:
$( document ).ready(function() {
//This is where i set up my greeting.
var nowDate=new Date();
var nowHour=nowDate.getHours();
var greeting;
if (nowHour<11)
{
//good morning
greeting="Good morning";
}
else if (nowHour<16)
{
//good afternoon
greeting="Good afternoon";
}
else
{
//good evening
greeting="Good evening";
}
//document.write("<center><h1>"+greeting+", Loser!");//
// This is where i put my random picture chooser
// pictures
//random image experiment
var hawaiiPix=new Array("hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg");
$('<img src="img/'+hawaiiPix[Math.floor(Math.random()*hawaiiPix.length)]+'">"').appendTo('#happypic');
var images = ["hawaii1.jpg", "hawaii2.jpg", "hawaii3.jpg", "hawaii4.jpg", "hawaii5.jpg"];
$('<img src="images/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo('#banner');
$('<h1>Hello</h1>').appendTo('#banner2');
});
最好的方法是将 jQuery 的加载和您的 JS 文件移动到 html 代码的底部。