年纪大了,记性不好了。
JavaScript中的Boolean类型(http://www.blogjava.net/majianan/)
||是这样运算的:从第一个开始,遇到有意义的返回,否则返回最后一个表达式(注意不一定是Boolean值);
&&是这样运算的:从第一个开始,遇到无意义的返回,否则返回最后一个表达式(注意同上);
!是这样运算的: 对表达式的值取非(注意不是对表达式)。
什么是无意义呢:如下六个 0,null,undefined,"",false,NaN。除此,视为有意义。
更改html元素样式的(也就是class=' style name') ,是这样写:
用document.getElementsByTagName得到的是document对象下的html元素,是不能得到js创建的对象的。
//获取坐标位置 function getpos(e)...{ var t=e.offsetTop; var l=e.offsetLeft; var height=e.offsetHeight; while(e=e.offsetParent)...{ t+=e.offsetTop; l+=e.offsetLeft; } }
假设 obj 为某个 HTML 控件。 obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。 obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。 obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。 obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。 我们对前面提到的“上方或上层”与“左方或上层”控件作个说明。 例如: <div id="tool"> <input type="button" value="提交"> <input type="button" value="重置"> </div> “提交”按钮的 offsetTop 指“提交”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。 “重置”按钮的 offsetTop 指“重置”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。 “提交”按钮的 offsetLeft 指“提交”按钮距“tool”层左边框的距离,因为距其左边最近的是 “tool” 层的左边框。 “重置”按钮的 offsetLeft 指“重置”按钮距“提交”按钮右边框的距离,因为距其左边最近的是“提交”按钮的右边框。
offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,二者的区别是:
一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。
二、offsetTop 只读,而 style.top 可读写。
三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。
offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标
offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由
offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由
offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值 event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
(下部分转自http://blog.csdn.net/beimuaihui/archive/2007/08/08/1731815.aspx)
textarea自适应高度
<textarea style="border: 1px solid #94BBE2;width:100%;"
rows="1"
onpropertychange="this.style.posHeight=this.scrollHeight"
id="textarea"
οnfοcus="textarea.style.posHeight=this.scrollHeight">fan</textarea>
json格式的数据互换:
var person = {name: "Angel", age: 18, married: false}; document.writeln('<br/>' + person.name + ', ' + person.age); var persons = eval('({"name": "Angel", "age": 18, "married": false})'); document.writeln('<br/>' + persons.name); var persons = eval('([{"name": "Angel", "age": 18, "married": false},{"name": "Angel", "age": 19, "married": false},{"name": "Angel", "age": 20, "married": false}])'); for(var i = 0; i < persons.length; i ++) { document.writeln('<br/>' + persons[i].age); }
转自:http://hi.baidu.com/csxbao/blog/item/b1dda31f0f7ff960f724e472.html
在IE/Opera中,是window.event,而在Firefox中,是event而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持。
我们还是用例子来说明。
event的跨浏览器测试 <script language="JavaScript"> </script>
这里顺便说一下判断鼠标按键的问题。
在 IE 里面
左键是 window.event.button = 1
右键是 window.event.button = 2
中键是 window.event.button = 4
没有按键动作的时候 window.event.button = 0
在 Firefox 里面
左键是 event.button = 0
右键是 event.button = 2
中键是 event.button = 1
没有按键动作的时候 event.button = 0
在 Opera 7.23/7.54 里面
鼠标左键是 window.event.button = 1
没有按键动作的时候 window.event.button = 1
右键和中键无法获取
而在 Opera 7.60/8.0 里面
鼠标左键是 window.event.button = 0
没有按键动作的时候 window.event.button = 0
右键和中键无法获取
下面我们写一个能在 IE4.01+/Firefox 0.9+/Opera 7.23+ 环境中均能运行正常的小程序,功能是用鼠标拖动层。
可用鼠标拖动的层 <script language="JavaScript"> </script>