javascript 移动鼠标得到单元格所在table表中的rowIndex位置[兼容ie,firefox] <font color=red>原创</font>
发布时间:2024-04-18 09:50:31
标签:javascript,table,rowIndex
从cnblogs看到的代码,作者的代码随便不兼容firefox但,有助于大家学习为什么下面的代码兼容了firefox,大家可以对比下,有助于学习,对于更多的文章可以参考脚本之家以前发布的文章。
<html> <head> <script language="javascript"> function mouseover(){ var ObjTd=window.event.srcElement; var ObjTr=ObjTd.parentElement; var y=ObjTr.rowIndex; var x=ObjTd.cellIndex; alert(x+" "+y); } </script> </head> <body> <table width="200" border="1"> <tr> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> </tr> <tr> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> </tr> <tr> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> <td onclick="mouseover()">&nbsp;</td> </tr> </table> </body> </html>
下面的代码是脚本之家修改的兼容firefox的代码
<html> <head> <script language="javascript"> function mouseover(e){ e=window.event?window.event:e; var ObjTd=e.srcElement?e.srcElement:e.target; var ObjTr=ObjTd.parentNode; var y=ObjTr.rowIndex; var x=ObjTd.cellIndex; alert(x+" "+y); } </script> </head> <body> <table width="200" border="1"> <tr> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> </tr> <tr> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> </tr> <tr> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> <td onclick="mouseover(arguments[0])">&nbsp;</td> </tr> </table> </body> </html>
主要区别如下:
1.事件e.srcElement与e.target
经常有人问 firefox 下的 event.srcElement 怎么用,在此详细说明:
IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即:
firefox 下的 event.target = IE 下的 event.srcElement
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
2.parentNode与parentElement的区别
使用parentElement时在FF下无效,搜索一下才知道parentElement它是IE专用的,IE多年的霸主地位造成现在不少应用中无法与其他浏览器兼容的问题,标准化真的很重要,呵呵,一定要向Web标准看齐哦


猜你喜欢
- 本文用python在TCP的基础上实现一个HTTP客户端, 该客户端能够复用TCP连接, 使用HTTP1.1协议. 一. 创建HT
- 本文实例讲述了Python实现base64编码的图片保存到本地功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -
- **将Python程序(.py)转换为Windows可执行文件(.exe)第一步:安装pyinstaller打开cmd,输入 pip ins
- 在我们的生活中,只要你睁开眼睛就能看到各种各样的视觉。不同的视觉能给你不同的视觉暗示,同样能给你不同的心理感受。视觉这个话题太泛了,大自然中
- 在python 中使用datatime库,可以用来获取现在日期和时间一、datetime库简介datetime有五个类:datetime.d
- 今天给vscode配置git的时候,差点没把我送走,我在配置git项目的时候会,看了一个博客文章的教学,其中配置路径的方法如下1. 在git
- Python实现截屏的函数# -*- coding: cp936 -*- import time,Image import os, win3
- 在利用torch.max函数和F.Ssoftmax函数时,对应该设置什么维度,总是有点懵,遂总结一下:首先看看二维tensor的函数的例子:
- 在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整齐干净,就需要把一行代码分成多行来写,Python中有两种小技巧可以实现该功能:
- 有些框架本身就支持多配置文件,例如Ruby On Rails,nodejs下的expressjs。python下的Flask虽然本身支持配置
- 用法:mean(matrix,axis=0) 其中 matrix为一个矩阵,axis为参数以m * n矩阵举例:axis 不设置
- 『写在前面』以CTC Beam search decoder为例,简单整理一下TensorFlow实现自定义Op的操作流程。基本的流程1.
- RSA算法RSA算法是一种公钥加密技术,被认为是最安全的加密方式.它是由Rivest,Shamir和Adleman于1978年发明的,因此命
- 开篇语本文主要是回顾下从项目创建到生成数据到数据库(代码优先)的全部过程。采用EFCore作为ORM框架。本次示例环境:vs2019、net
- 今天看书讲T-SQL,看到了UNBOUNDED PRECEDING,就想比对下ROW_NUMBER()的运行速度。sql及相关的结果如下,数
- 本文实例讲述了jquery判断单选按钮radio是否选中的方法。分享给大家供大家参考。具体如下:html代码如下:<input typ
- 本文实例讲述了PHP实现上传文件并存进数据库的方法。分享给大家供大家参考。具体如下:show_add.php文件如下:<?php &n
- 一、父组件向子组件传值(props)步骤:在父组件中通过 v-bind 将数据传给子组件在子组件中通过 props 接收父组件传递过来的数据
- 1、问题现象:2、解决办法:editor的字体设置为DialogInput补充知识:Python +Selenium 支持多项目集中配置文件
- 1.实现效果2.实现代码# 导入所需库from tkinter import *import randomclass main: