jQuery代码无法在我的本地计算机上运行

时间:2012-01-10 11:30:31

标签: javascript jquery

下面的代码在http://jsfiddle.net/saQTw/2/

上运行正常

由于某种原因它不能在我的本地机器上工作,我不知道我在哪里犯了错误。需要专家的眼睛来看看我在这段代码中做错了什么。

我从stackoverflow获得的代码支持使用日期填充选择列表 但我不能让它在我的本地机器上工作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script  type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
    </script>
    <link href="css.css" rel="stylesheet" type="text/css" />
    <script>
    function pad(n){return n<10 ? '0'+n : n}
    var date = new Date();
    var selectElement = $('<select>'), optionElement;
    for (var count =0; count < 90; count++){
        formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' +  date.getUTCFullYear();
        optionElement = $('<option>')
        optionElement.attr('value',formattedDate);
        optionElement.text(formattedDate);
        selectElement.append(optionElement);
        date.setDate(date.getDate() + 1);
    }
    $('#ddDate').append(selectElement);
    </script>
    </head>

    <body>

    <div id="ddDate"> </div>
    </body>
    </html>

我试过jQuery 1.6版也不行吗

解决上述问题:

<script>
$(function(){
    function pad(n){return n<10 ? '0'+n : n}
    var date = new Date();
    var selectElement = $('<select>'), optionElement;
    for (var count =0; count < 90; count++){
        formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' +  date.getUTCFullYear();
        optionElement = $('<option>')
        optionElement.attr('value',formattedDate);
        optionElement.text(formattedDate);
        selectElement.append(optionElement);
        date.setDate(date.getDate() + 1);
    }
    $('#ddDate').append(selectElement);
});
    </script>

3 个答案:

答案 0 :(得分:0)

尝试将jquery包装在document.ready()

<script>
  jQuery(document).ready(function) {

答案 1 :(得分:0)

您正在访问#ddDate元素,然后才能存在。因此,要么将javascript部分移动到正文下面,要么将代码包装到$(document).ready(function() {...})

答案 2 :(得分:0)

在JSFiddle中,您使用onload事件来运行pad(n)。你需要在这里做同样的事情

<body>代码修改为<body onload="pad(2)">