网页加载后动态改变HTML元素的onClick事件

本文记录了解决网页中TR元素onClick事件动态修改的问题过程。作者尝试了直接赋值和setAttribute方法未果,最终通过设置Function成功实现目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  今天,我在编写我的网站http://www.izfang.com时,为了能够不刷新切换“出租”和“求租”信息列表,我写了一段JavaScript代码,利用objElem.innerText属性动态改变了TD元素中的值。

  当我想改变列表的鼠标点击链接时发现,由于我没有在每个TD元素中使用<a href=".....">...</a>标签,而是在整个TR元素的onClick属性中使用了"window.open('targetPage.asp')",这下我在做切换时遇上了难题:

    如何动态改变这个TR元素的onClick事件?

  一开始,我在JavaScript函数中直接给这个元素的onclick属性赋值:
   ...
   <tr id="pRentClick">
     <td>...</td>
   </tr>
   ...
   <script language="javascript">
              pRentClick.onclick="window.open('targetPage.asp?id=1')";
   </script>
  运行后无反应,失败。

  于是我开始上Google搜索查找方法,在一个英文的论坛上看到这样一个方法:
   <script language="javascript">
              pRentClick.setAttribe["onclick","window.open('targetPage.asp?id=1')";
   </script>
  运行后无反应,失败。

  后来,终于在优快云的论坛上找到一篇文章:http://topic.youkuaiyun.com/t/20021129/09/1215091.html

  这篇文章的楼主也遇到跟我一样的问题,我大致看了一下大家的回复,就改写上述代码如下:
   <script language="javascript">
              pRentClick.onclick=function("window.open('targetPage.asp?id=1')");
   </script>
  结果运行还是无反应,网页提示有错。

  这下我不知所解了,为什么别人能运行的代码我却不能运行?

  仔细对照我和论坛上的代码后,发现居然是function和Function两个相同英文单词的首字母大小写不一样。于是我将function改成Function大写,如下:
   <script language="javascript">
              pRentClick.onclick=Function("window.open('targetPage.asp?id=1')");
   </script>
  运行正常!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天神笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值