<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>用按钮显示源代码或者javascript里面的内容,有时会有</TITLE>
</HEAD>
<BODY >
<script id=abc >
function dennisboys()
{
var i=0;
alert(document.documentElement.childNodes[0].outerHTML)
}
</script>
<input type=button onclick=dennisboys() style="width:160" value=显示head里面的内容>
<input type="button" value="显示javascript里面代码" style="width:160" onclick="alert(document.all.abc.innerHTML)">
</BODY></HTML> ......
javascript获取select的值全解
获取显示的汉字
document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text
获取数据库中的id
window.document.getElementById("bigclass").value
获取select组分配的索引id
window.document.getElementById("bigclass").selectedIndex
例子:
<select name="bigclass" id="bigclass" onChange="javascript:updatePage2();">
<option value="" selected="selected">ajax实验</option>
<option value="4">我适宜市哈</option>
</select>
使用
document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text
的结果是:我适宜市哈
使用
window.document.getElementById("bigclass").value
的结果是:4
使用
window.document.getElementById("bigclass").selectedIndex
的结果是:1
================
function chk(){
var obj = document.getElementById("shijian");
var strsel = obj.options[obj.selectedIndex].text;
alert(strsel); ......
<script type="text/javascript">
function checkform() {
//判断标题栏是否填写
if (document.form1.title.value == "") {
alert("信息类型不能为空!");
document.form1.title.focus();
return;
}
//判断checkbox是否被选中
var len = document.form1.keywords.length;
var checked = false;
for (i = 0; i < len; i++)
{
if (document.form1.keywords[i].checked == true)
{
checked = true;
break;
}
&n ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
闭包(
closure
)
闭包意味着内层的函数可以引用存在于包围他的函数内的变量,即使外层函数的执行已经终止。这个特性非常强大和复杂。
例如:闭包如何使代码更清晰的两个例子
找出
ID
为‘
main’
的元素
var
obj=document.getElementById("main");
修改它的
border
样式
obj.style.border = "1px solid
red";
初始化一个在一秒后执行的回调函数
(callback)
setTimeout(function(){
她将隐藏此对象
obj.style.display = 'none';
},1000);
一个用于延时显示警告信息的通用函数
function delayedAlert(msg, time){
初始化一个封装的回调函数
setTimeout(function(){
她将包含本函数的外围函数传入的
msg
变量
alert(msg);
},time);
}
用两个参数调用
delayedAlert
函数
delayedAlert("zhangxinagrong",2000);
在一些函数式程序设计语言里,有一种称为
Curry
化得技术。本质上,
Curry
化是一种通过把多个参数填充到函数体中,实现将函数转换为一个新的经过简化的 ......
倒计时计算
<body>
<div id="countdown"></div>
<mce:script type="text/javascript"><!--
var i = 0;
(function(){
var hour, min, sec, text;
tmp = 12 * 60 * 60 - i;
hour = Math.floor(tmp / 3600);
tmp %= 3600;
min = Math.floor(tmp / 60);
tmp %= 60;
sec = tmp;
text = hour + ' 时 ' + min + ' 分 ' + sec + ' 秒';
document.getElementById("countdown").innerHTML = text;
i++;
setTimeout(arguments.callee, 1000);
})();
// --></mce:script>
</body>
说明:callee也拥有length属性,arguments.length是实参长度,arguments.callee.length是形参长度。
当连续调用同一函数并传递参数,函数体处理的是最后一次调用函数时传递的值,前面传递的值被覆盖
造成该问题出现的常见情况:
1) 函数体内做处理时,使用了全局变量存储参数值(函数体内没有用var关键字定义变量),导致第二次的参数值覆盖了上次的 ......
这是一种很有前途的技术,可惜生不逢时,IE刚打垮网景,火狐又冒出来了。这种技术是我在设计超级数组对象时发现的。由于直接继承原生数组问题多,我只有用Object与Array的原型方法构建一个新类。不用说,效率不太理想。直到我已把超级数组臻至完美的今天,我还在不断寻找新的替代方案,于是我就想到用另一个文档的数组对象来构建。经测试,IE下是完美的。后来我又发现早在2006年全知全能的DE大神早已做了这样的探索,在《How To Subclass The JavaScript Array Object》中应用这种技术,我只不过是重新把它发挖出来而已。但是,以后就没有下文了,DE大神在他的Base2类库构建Array2对象时也没有应用这种技术。不明真相的我一头扎下去,哎呀!DE大神你真坏,有陷阱也不通报声!
下面就拿DE大神的例子改一下,演示究竟出了什么状况?!
window.onload = function(){
//创建一个iframe
var iframe = document.createElement("iframe");
iframe.style.display = "none";
document.body.appendChild(iframe);
// 取得iframe文档的数组对象
frames[frames.length - 1].document.write(
"<script>parent.Arr ......