最新日志

备案终于成功了

备案终于成功了.编号在网站下面.呼呼~~
从10月14号到现在真是一个漫长的等待呀.
网站又添加一个几个导航,一个是围脖,一个是我的QQ空间(都是些生活上的日记,琐碎),还有一个简陋的搜索功能,呼呼~先做这么多,这段时间工作也很忙.看书的速度也很慢.
月初在旧书市场花了20块买了本<ppk on javascript>
按此在新窗口浏览图片
还在拜读中.计划是月底前很看两遍.不过今天才发现.一遍也可能看不完.不是看不懂而是没时间,所以要挤了.
网站又启动了.飞起来吧.

关联数组

关联数组是允许你通过字符串作为值的名字来找到某一个确定的值的数组.这些字符串叫做关键字.
点符号与方括号
在数组中

var str=[1,2,3];
str[1]

在对象中
var fun={
x:function(){
},
y:function(){
}}

fun.x();可以执行,fun['x']()也可以执行
具体可以看下面的实例


在CSS中的可以应用,例如下面
style.+得是它的一个属性.如果写成
style.stylename就错误了.应该它不是style的属性.
<select name="textAlign" id="select">
<option value="left">left</option>
<option value="right">right</option>
<option value="center">center</option>
</select>
<div id="box">thinkpad</div>
<script type="text/javascript">
function getValue(){
var styleName=this.name,
styleValue=this.value;
document.getElementById("box").style[styleName]=styleValue;
document.getElementById("box").innerHTML=styleValue;

}
document.getElementById("select").onchange=getValue;
</script>


还有其它应用,
如果在表单验证中.把常用的验证几项写成一个函数,在input上中个非w3c属性,通过dom查找这个非属性,来决定用那一个验证函数


这样的做法显然不能通过w3c验证.不过在实用中却很中用.

一个效果中遇到的问题

代码如下:
//无法完美显示,主要问题在鼠标放上而又移开后不能紧接着滚动
copycode:
function $(id) {
return document.getElementById(id);
}
var aa = 0;

var hot_list = {

x: function(t, t1) {
var me = this;
var obj = $(t).getElementsByTagName("ul"),
len = obj.length;
var obj1 = obj[1].getElementsByTagName("li"),
len1 = obj1.length;

for (var i = 0; i < len1; i++) {

obj1[i].i = i;
obj1[i].onmouseover = function() {
clearInterval(timer);
hot_list.z(t, this.i);
}
obj1[i].onmouseout = function() {
timer = setInterval(function() {
hot_list.p("box");
},
1000);
}

}

},
z: function(t, node) {
var obj = $(t).getElementsByTagName("ul"),
len = obj.length;

var obj1 = obj[0].getElementsByTagName("li"),
len1 = obj1.length,
obj2 = obj[1].getElementsByTagName("li");

for (var j = 0; j < len1; j++) {

if (obj1[j].className != "none") {
obj1[j].className = "none";

}
if (j == node) {
obj1[node].className = "act";
}

if (obj2[j].className != "none") {
obj2[j].className = "none";

}
if (j == node) {
obj2[node].className = "act";
}
}
},

p: function(t, aaa) {
var me = this;
var obj = $(t).getElementsByTagName("ul"),
len = obj.length;
var obj1 = obj[1].getElementsByTagName("li"),
len1 = obj1.length;

if (aa < len1) {

hot_list.z(t, aa++);

}
else {
aa = 0;
hot_list.z(t, aa++);
}
}
};

hot_list.x("box");
var timer = setInterval(function() {
hot_list.p("box");
},
1000);




什么问题?

很无聊的效果

copycode:
function $(id) {
return document.getElementById(id);
}

var mgyp = {
x: function(t) {
var obj = $(t).getElementsByTagName("a"),
len = obj.length,
me = this;
for (var i = 0; i < len; i++) {

obj[i].onclick = function() {
var ss=(me.z(this.parentNode).className!="a" ) ? 0: 1 ;
me.y(t);
if(ss){me.z(this.parentNode).className=="a";}
me.z(this.parentNode).className = (ss) ? "b": "a";
}
}
},
y: function(t) {
var obj1 = $(t).getElementsByTagName("a")
len1=obj1.length;
for (var i = 0; i < len1; i++) {

this.z(obj1[i].parentNode).className = "b";
}
},
z: function(node) {
var s = node.lastChild;
while (s.nodeType != 1) {
s = s.previousSibling;
}
return s;
}
};
mgyp.x("mgyp");


两个无聊的效果,在chrome中解释不一样

FF和IE的效果基本上一样。而在chrome里却不一样了。郁闷呀!!
第一个:
我在用日期对象写东西时发现的。
var stri=123456789;
var d=new Date();
var x={
x:function(){
alert((d.getTime()+stri-d.getTime()).toLocaleString());
}
};
x.x();

在IE和FF中可以将数字转换为:123,456,789.00(基本上实现了这个http://bbs.9demo.com/viewthread.php?tid=27&page=1#pid193第三题的转换),但chrome里却没有逗号。
第二个:


差别:在chrome中比较快。