我要实现网页换肤的功能,但不知道为什么firefox上有错误,说$("skin").getElementsByTagName is not a function
不知道什么原因
function $(obj) {
return document.getElementById(obj);
}var skin = {};skin.addEvent = function () {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].onclick = function () { skin.setSkin(this.id.ToString()) };
}
}skin.setCookie = function (n) {
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 60 * 60 * 365 * 1000);
var flag = "Skin_Cookie=" + n;
document.cookie = flag + ";expires=" + expires.toGMTString();
}skin.readCookie = function () {
var skin = 0
var mycookie = document.cookie;
var name = "Skin_Cookie";
var start1 = mycookie.indexOf(name + "=");
if (start1 == -1) {
skin = 0;
}
else {
var start = mycookie.indexOf("=", start1) + 1;
var end = mycookie.indexOf(";", start);
if (end = -1) {
end = mycookie.length;
}
var values = unescape(mycookie.substring(start, end));
if (values != null) {
skin = values;
}
}
return skin;}skin.setSkin = function (n) {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].className = "";
}
skin.setCookie(n);
$("skin_" + n).className = "selected";
$("cssfile").href = "css/main" + n + ".css";
}window.onload = function () {
skin.setSkin(skin.readCookie());
skin.addEvent();
}<ul id="skin">
<li id="skin_0" title="灰色">灰色</li>
<li id="skin_1" title="绿色">绿色</li>
<li id="skin_2" title="黄色">黄色</li>
<li id="skin_3" title="蓝色">蓝色</li>
<li id="skin_4" title="粉色">粉色</li>
<li id="skin_5" title="紫色">紫色</li>
</ul>
不知道什么原因
function $(obj) {
return document.getElementById(obj);
}var skin = {};skin.addEvent = function () {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].onclick = function () { skin.setSkin(this.id.ToString()) };
}
}skin.setCookie = function (n) {
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 60 * 60 * 365 * 1000);
var flag = "Skin_Cookie=" + n;
document.cookie = flag + ";expires=" + expires.toGMTString();
}skin.readCookie = function () {
var skin = 0
var mycookie = document.cookie;
var name = "Skin_Cookie";
var start1 = mycookie.indexOf(name + "=");
if (start1 == -1) {
skin = 0;
}
else {
var start = mycookie.indexOf("=", start1) + 1;
var end = mycookie.indexOf(";", start);
if (end = -1) {
end = mycookie.length;
}
var values = unescape(mycookie.substring(start, end));
if (values != null) {
skin = values;
}
}
return skin;}skin.setSkin = function (n) {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].className = "";
}
skin.setCookie(n);
$("skin_" + n).className = "selected";
$("cssfile").href = "css/main" + n + ".css";
}window.onload = function () {
skin.setSkin(skin.readCookie());
skin.addEvent();
}<ul id="skin">
<li id="skin_0" title="灰色">灰色</li>
<li id="skin_1" title="绿色">绿色</li>
<li id="skin_2" title="黄色">黄色</li>
<li id="skin_3" title="蓝色">蓝色</li>
<li id="skin_4" title="粉色">粉色</li>
<li id="skin_5" title="紫色">紫色</li>
</ul>
或者 var skins=$("#skin").find("li");试试看
代码会少写很多,
$("skin")是一个jquery对象,jQuery对象是没有getElementsByTagName方法的。
$("skin").get(0)就是一个DOM对象,这个DOM对象就有getElementsByTagName了。
<!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>
<title></title>
<script language="javascript" type="text/javascript">
function GetLi() {
var oUl = $("skin");
var liList = oUl.getElementsByTagName("li");
for (var i = 0; i < liList.length; i++) {
alert(liList[i].innerHTML);
}
}
function $(obj) {return document.getElementById(obj);}
</script>
</head>
<body>
<input type="button" value="测试" onclick="GetLi()" />
<ul id="skin">
<li id="skin_0" title="灰色">灰色</li>
<li id="skin_1" title="绿色">绿色</li>
<li id="skin_2" title="黄色">黄色</li>
<li id="skin_3" title="蓝色">蓝色</li>
<li id="skin_4" title="粉色">粉色</li>
<li id="skin_5" title="紫色">紫色</li>
</ul>
</body>
</html>我这儿,测试没问题!可能是你哪儿写错了!检查下!
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title> new document </title>
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="stylesheet" id="cssfile" type="text/css" />
<script type="text/javascript">
<!--
function $(obj) {
return document.getElementById(obj);
}var skin = {};skin.addEvent = function () {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].onclick = function () { skin.setSkin(this.id.toString()) };
}
}skin.setCookie = function (n) {
var expires = new Date();
expires.setTime(expires.getTime() + 24 * 60 * 60 * 365 * 1000);
var flag = "Skin_Cookie=" + n;
document.cookie = flag + ";expires=" + expires.toGMTString();
}skin.readCookie = function () {
var skin = 0
var mycookie = document.cookie;
var name = "Skin_Cookie";
var start1 = mycookie.indexOf(name + "=");
if (start1 == -1) {
skin = 0;
}
else {
var start = mycookie.indexOf("=", start1) + 1;
var end = mycookie.indexOf(";", start);
if (end = -1) {
end = mycookie.length;
}
var values = unescape(mycookie.substring(start, end));
if (values != null) {
skin = values;
}
}
return skin;}skin.setSkin = function (n) {
var skins = $("skin").getElementsByTagName("li");
for (i = 0; i < skins.length; i++) {
skins[i].className = "";
}
n = n.substr(5,1);
if (n=="") {
n=0;
}
skin.setCookie(n);
$("skin_" + n).className = "selected";
$("cssfile").href = "css/main" + n + ".css";
}window.onload = function () {
skin.setSkin(skin.readCookie());
skin.addEvent();
}
//-->
</script>
</head> <body>
<ul id="skin">
<li id="skin_0" title="灰色">灰色</li>
<li id="skin_1" title="绿色">绿色</li>
<li id="skin_2" title="黄色">黄色</li>
<li id="skin_3" title="蓝色">蓝色</li>
<li id="skin_4" title="粉色">粉色</li>
<li id="skin_5" title="紫色">紫色</li>
</ul> </body>
</html>