2012-04-06 60 views
0

我想要将以下javascript代码更改为jquery代码,它是如何工作的?将javascript代码更改为jquery代码,它如何?

已完成变更hourOffset在日期3, 219, 22

DEMO:http://jsfiddle.net/zJRDC/

<script type="text/javascript"> 
    var interval = self.setInterval("clock()", 1000); 
    function clock() { 
     var date = new Date(); 
     var hourOffset = 3; 
     date.setUTCHours(date.getUTCHours(), date.getUTCMinutes()); 
     var time = date.getTime(); 
     date.setUTCFullYear(date.getUTCFullYear(), 3, 21); 
     var dstStart = date.getTime(); 
     date.setUTCFullYear(date.getUTCFullYear(), 9, 22); 
     var dstEnd = date.getTime(); 
     if (time > dstStart && time < dstEnd){ hourOffset = 4;} 
     date.setUTCHours(date.getUTCHours() + hourOffset, date.getUTCMinutes() + 30); 
     var output = date.getUTCHours() + ":" + date.getUTCMinutes() + ":" + date.getUTCSeconds(); 
     document.getElementById("clock").innerHTML = output 
    } 
    </script> 
<div id="clock"></div>​ 
+0

代码是否工作? – 2012-04-06 09:40:10

+3

你有没有很好的理由用jQuery替换这个简单的代码片段......?使用jQuery不会使代码更加真棒。您当前的代码使用良好支持的方法。绝对不需要使用jQuery。 – 2012-04-06 09:40:18

+4

JavaScript是一种编程语言,jQuery是一个Web浏览器框架(它本身就是用JavaScript编写的)。 jQuery不是一种语言。除此之外,你的DST计算是错误的。 – Lucero 2012-04-06 09:41:12

回答

3

还有那正​​是一个行,其中jQuery的可能适用:

document.getElementById("clock").innerHTML = output 

与jQuery的可能是

$("#clock").html(output); 

使用$来查找元素,其中包括一个bug in getElementById in earlier versions of IE解决方法,然后使用html方法设置元素上的标记(这非常类似于设置innerHTML   —,但是,对于某些workaroun在某些情况下ds用于有问题的位;他们可能不适用于这个特定的代码)。


请注意,jQuery只是一个用JavaScript编写的框架。它平滑了一些与DOM有关的浏览器差异,并提供了许多方便的实用程序功能,但它并不是独立于JavaScript的东西。你写JavaScript代码,你可以选择使用 jQuery(就像任何其他库)。

+0

但是它在这里不起作用:http://jsfiddle.net/zJRDC/1/ – 2012-04-06 09:45:52

+1

@jenniferJolie:那是因为你使用'onload'加载jQuery,但是之前运行你的代码。如果你足够早的加载jQuery,以防你的代码在它出现之前不尝试使用它(或者稍后反过来将代码放在你的代码中),它就可以工作得很好:http://jsfiddle.net/zJRDC/2/ – 2012-04-06 09:47:17

0

jQuery是已经用JavaScript来完成。没有什么可以转换,因为JQuery不是一种语言;)。

1

如果您的代码有效。你并不需要jquery。除非你想创建可重用的函数或你的自定义插件。

快速样品使用时钟()的jQuery插件(未测试)

(function($){ 

    $.fn.myClock = function(timeout) { 

    var interval = setInterval("clock()", timeout); 

    function clock() { 
     //..calculate date output 
     var output = //... 
     this.html(output) 
    } 
    }; 
})(jQuery); 

然后使用你的插件

$(document).ready(function(){ 
    $('#clock').myClock(1000); 
} 

看到Plugins/Authoringlearn-how-to-create-your-own-jquery-plugin