
1、this 表示这个<input> 元素,等同于documentgetElementById;
2、a)你的理解是正确的,但是不仅只有undifined会被强制转换。
js的弱类型,让他可以申明后赋任何类型的值。
因此除了bool型的false,number类型的0,String类型的空串,还有null在三元运算符或者判断条件时都会被转成false
其他还有一些,可以看一看比较基础的javascript书和《javascript高级程序设计》,可谓一阅扫百惑,比在网上别人一知半解的讲述了解的更彻底。
b)通过上面的解答,应该知道为什么不能用event代替this了吧
c)js对于函数的定义是非常松,即使你在函数定义时未写任何参数,或者你定义的参数有多个,但是你调用时,一个参数也不填,也不会出错的。
js函数内默认有个变量,保存你的入参叫:arguments
他是一个数组,下标从0开始,
所以获取event可以写成
function Test(){var event = windowevent||arguments[0];
}
在ie下,事件对象是在全局的,也就 window下,做为window的一个属性
在其他浏览器,都做为方法的第一个参数传入,所以这样写是为了兼容
要获取这个button的值,可以先获取这个对象,event既然是事件,肯定是某对象触发的
所以有这要一个方法
ie下是eventsrcElement
其他浏览器是eventtarget
所以获取这个对象和获取事件对象的值可以这样写
function Test(){var event = windowevent||arguments[0],
//target 就是这个对象
target = eventsrcElement||eventtarget,
//这个对象的值
targetValue = targetvalue;
}
eventsrcElement从字面上可以看出来有以下关键字:事件,源 他的意思就是:当前事件的源,event //事件 eventsrcElement 可以捕获当前事件作用的对象,如eventsrcElementtagName可以捕获活动标记名称。
注意获取的标记都以大写表示,如"TD","TR","A"等 <script type="text/javascript"> function tdclick(){ if(eventsrcElementtagNametoLowerCase()=='td') alert("行:"+(eventsrcElementparentNoderowIndex+1)+"列:"+(eventsrcElementcellIndex+1)); } </script>
事件源对象
eventsrcElementtagName(documentgetElementsByTagName)
eventsrcElementtype
捕获释放
eventsrcElementsetCapture();
eventsrcElementreleaseCapture();
事件按键
eventkeyCode
eventshiftKey
eventaltKey
eventctrlKey
事件返回值
eventreturnValue
鼠标位置
eventx
eventy
窗体活动元素
documentactiveElement
绑定事件
documentcaptureEvents(EventKEYDOWN);
访问窗体元素
documentall("txt")focus();
documentall("txt")select();
窗体命令
documentexecCommand
窗体COOKIE
documentcookie
菜单事件
documentoncontextmenu
创建元素
documentcreateElement("SPAN");
根据鼠标获得元素:
documentelementFromPoint(eventx,eventy)tagName=="TD
documentelementFromPoint(eventx,eventy)appendChild(ms)
窗体
documentimages[索引]
窗体事件绑定
documentonmousedown=scrollwindow;
元素
document窗体elements[索引]
对象绑定事件
documentallxxxdetachEvent('onclick',a);
插件数目
navigatorplugins
取变量类型
typeof($js_libpath) == "undefined"
下拉框
下拉框options[索引]
下拉框optionslength
查找对象
documentgetElementsByName("r1");
documentgetElementById(id);
定时
timer=setInterval('scrollwindow()',delay);
clearInterval(timer);
UNCODE编码
escape() ,unescape
父对象
objparentElement(dhtml)
objparentNode(dom)
交换表的行
TableIDmoveRow(2,1)
替换CSS
documentallcssshref = "acss";
并排显示
display:inline
隐藏焦点
hidefocus=true
根据宽度换行
style="word-break:break-all"
自动刷新
<meta >
这个你可能需要一些辅助方法,来帮助定位元素,因为在dom中事件是冒泡的形式到document对象上的,而srcElement一直指向的是当时发生事件的元素,只要一直选择这个元素的父亲元素,就可以匹配到你想要的元素了,比如
<table id="test1"><tbody>
<tr>
<td>click me (#test1)</td>
</tr>
</tbody>
</table>
<table id="test2">
<tbody>
<tr>
<td>click me (#test2)</td>
</tr>
</tbody>
</table>
js:
documentonclick = function(e){e = e || windowevent;
src = etarget || esrcElement;
var table = parents(src , 'table');//这样可以拿到当前点击的这个元素的table
var tr = parents(src , 'tr');//这样拿到当前点击的元素的父亲(tr);
alert(tableid);//table的id
}
//查找父节点
function parents(el , parentName){
var parent = elparentNode;
if(!parent)return null;//如果根本就没有父节点,那么返回null
do{
if(parenttagNametoLowerCase() == parentNametoLowerCase()){
//如果这个就是想要找的节点,就返回这个
//在jq的校验里还可以校验class名称和其它的属性校验等
//这个简化版就直接校验标签名称
return parent;
}
}while(parent = parentparentNode);//递归一直查找父亲的父亲。。
return null;//如果没有找到,也返回null
}
以上就是关于JS 中的 eventevent:window.event什么意思求详解。全部的内容,包括:JS 中的 eventevent:window.event什么意思求详解。、JS中 event.srcElement是什么意思, event是什么、怎么获取触发事件的元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)