if(/a/i.test(e.tagName))是怎么回事?请参照注释中的疑问指点,谢谢

风斧 2009-09-27 09:41:54
<html>
<head>
</head>
<BODY>
<style type="text/css">
div.card div{ background-color:#FF8000; float:left; padding:1px; padding-bottom:0; clear:both; width:405px;}
div.card a{ color:black; font-size:14px; text-decoration:none; float:left; width:100px; text-align:center; background-color:white; margin-right:1px;}
div.card div.home a.home{ font:normal normal bold 14px/1.5 宋体;}
div.card div.international a.international { font:normal normal bold 14px/1.5 宋体;}
div.card div.sport a.sport{ font:normal normal bold 14px/1.5 宋体;}
div.card div.finance a.finance{ font:normal normal bold 14px/1.5 宋体;}
div.card div.content{ background-color:white; border:1px solid #ff8000; height:100px;}
</style>

<script type="text/javascript">
var shq={}
shq.cmenu=function(e)
{
alert(e);
var e=window.event?window.event.srcElement:e.target;
//上面一行取得激发事件的对象。
if(/a/i.test(e.tagName)){
//if中的东西是怎么回事???????????主要疑问点
e.parentNode.className=e.className;
//e.parentNode是类似于<a href="#" class="home">国内</a>这样的东东吗?
e.parentNode.nextSibling.innerHTML=e.innerHTML;
//e.parentNode.nextSibling就应该是class为content的div
e.parentNode.nextSibling.style.cssText='border-top:none';
e.blur();
//blur是什么东东,似乎是失去焦点?
}
}
</script>
</head>
<body>
<div class="card">
<div onclick="shq.cmenu(event)">
<a href="#" class="home">国内</a>
<a href="#" class="international">国际</a>
<a href="#" class="sport">体育</a>
<a href="#" class="finance">财经</a>
</div>
<div class="content">
</div>
</div>
</body>
</html>
...全文
502 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ItAzure 2010-04-27
  • 打赏
  • 举报
回复
学习了
风斧 2009-09-27
  • 打赏
  • 举报
回复
谢谢各位,这个正则表达式,很久前我还回答过别人的问题呢,好多年不碰这个了,汗,谢谢
MuBeiBei 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mubeibei 的回复:]
if(/a/i.test(e.tagName)){ //对e.tagName进行正则测试,如果匹配

e.parentNode当前事件标签A的父节点,也就是<div onclick="shq.cmenu(event)">

blur()
说明:
导致控件失去焦点。然后激发 onblur 事件。

[/Quote]
up~`
hookee 2009-09-27
  • 打赏
  • 举报
回复
if(/a/i.test(e.tagName)) 拆开来写
re = /a/i; 定义正则表达式/a/i 用来匹配字母a, i表示不区分大小写
if(re.test(e.tagName)) 判断 元素名称是不是匹配a(即判断触发事件的是不是A标签)
e.parentNode是A标签的父节点,即<div onclick="shq.cmenu(event)">
e.blur(); 让该元素失去焦点
MuBeiBei 2009-09-27
  • 打赏
  • 举报
回复
if(/a/i.test(e.tagName)){ //对e.tagName进行正则测试,如果匹配

e.parentNode当前事件标签A的父节点

blur()
说明:
导致控件失去焦点。然后激发 onblur 事件。
dfzx 2009-09-27
  • 打赏
  • 举报
回复
字符串的一种写法,
gaozliang2009 2009-09-27
  • 打赏
  • 举报
回复
。前面是一个正则表达式
sohighthesky 2009-09-27
  • 打赏
  • 举报
回复
1.判断事件源对象的tagName是不是a,
blur(),使用源对象失去焦点

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧