百转千回,万物皆变心不动,任清风自流。

html,css,jQuery,javascript,php,mysql,dedecms,phpcms,wordpress,linux,windows
  首页  :: 订阅 订阅  :: 管理

js jQuery 网页换肤

Posted on 2012-08-02 10:21  李潇喃  阅读(184)  评论(0)    收藏  举报
<!DOCTYPE html> <html> <head> <title>html5</title> <meta http-equiv="content-Type" content="text/html;charset=utf-8" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <style type="text/css"> body {color:#ccc;} .isbg {color: #FFF;} </style> <link rel="stylesheet" href="red.css"> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <!-- javascript --> <script type="text/javascript"> window.onload = function(){ var oLink = document.getElementsByTagName("link")[0]; //获取链接文件标签 var oBg = document.getElementsByTagName("div")[0].getElementsByTagName("li"); //控制换肤的标签列表所有元素 for(var i = 0; i < oBg.length; i++){ //循环列表,列出索引i oBg[i].onclick = function(){ //点击事件 for(var p in oBg) //内部循环 oBg[p].className = ""; //取消所有class this.className = "isbg"; //当前li加上class oLink['href'] = this.id + ".css"; //把当前id+.css赋值给link标签的href属性 } } } </script> <!-- jQuery --> <script type="text/javascript"> $(function(){ var oLink = $("link"); var oBg = $("div li"); $(oBg).click(function(){ var oId = $(this).attr("id"); $(this).addClass("isbg").siblings().removeClass("isbg"); $(oLink).attr('href',oId + '.css'); }); }) </script> <!-- 为什么javascript要用循环输出i,用onclick来控制点击跟jQuery中的click有什么不同。 jQuery中的click会触发‘每一个’匹配元素的click事件 javascript getElementsByTagName("li")选中的是'所有'符合标准的元素 javascript中的onclick是指“当对象被点击时触发事件”,如果不用for循环出i来索引li,那么,点击时触发的是所有li的onclick事件,this将无法指到正确的li --> </head> <body> <div> <li id="red" class="isbg">红色</li> <li id="black">黑色</li> </div> </body> </html>