对a标签使用click()不起作用

本文讨论了在JavaScript中遇到a标签click事件不起作用的情况。通过分析代码和查看元素事件,发现需要通过$(a)[0].click()来正确触发点击事件。问题在于原始代码未指定DOM元素,解决方案是明确指定元素的索引。

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

有问题的代码:

var cur_url = window.location.href;#获取当前页面url
if(cur_url.indexOf('#') > 1){ #链接中有锚点
    var tab = cur_url.split('#')[1]; #获取锚点的值
    var lis = $('#myTab li'); #获取所有tab
    $.each(lis, function(index, obj){
        if($(obj).find('a').attr('href') == '#'+tab){
            $(obj).find('a').click();#问题行,点击事件不起作用
            return false;
        }
    });
}

解决的代码:

var cur_url = window.location.href;#获取当前页面url
if(cur_url.indexOf('#') > 1){ #链接中有锚点
    var tab = cur_url.split('#')[1]; #获取锚点的值
    var lis = $('#myTab li'); #获取所有tab
    $.each(lis, function(index, obj){
        if($(obj).find('a').attr('href') == '#'+tab){
console.log($(obj).find('a'));#打印出找到的a标签
            $(obj).find('a')[0].click();#修改后的代码
            return false;
        }
    });
}

上述代码中的console.log($(obj).find('a'))的结果如下图所示,

打开0:a 可查看到有各种事件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="jquery-2.0.3.min.js"></script>
    <script type="text/javascript">
    	$(function(){
            console.log($('a'));#这里查看获取的a标签
        });
    </script>
</head>
<body>
<div class="advantage1">
    <a href="javascript:;" data-url="https://www.baidu.com">百度</a>
</div>

</body>
</html>

上面代码console.log($(a));打印的结果如下

打开0:a

能找到a标签的各种属性和事件

因此,对a标签使用click()方法触发点击事件时需要加上[0],即$(a)[0].click();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值