求助:使用JavaScript通过类名打开链接失败,求解决方法
求助:使用JavaScript通过类名打开链接失败,求解决方法
兄弟,我瞅了你写的代码,一下子就发现问题所在啦,这几个小错误导致你打不开链接,我给你一步步说清楚~
先说说你代码里的问题:
- 你要找的是类名为"1"的a标签,但你用了
document.getElementById('1')——这个方法是用来找**id属性为"1"**的元素的,可你的a标签根本没加id,所以这个方法会返回null,后面的操作自然就失效了。 - 就算你侥幸找到了元素,你取的是
className属性,这会拿到字符串"1",而不是a标签里的链接地址(也就是href属性),就算执行了,打开的也是无效内容。
给你两个修正后的代码方案,选哪个都行:
方案一:用querySelector(推荐,语法更简洁)
<body> <a href="https://example.com" class="1"></a> <script> // 用CSS类选择器找到对应的a标签 const targetLink = document.querySelector('.1'); // 先判断元素是否存在,避免找不到时报错 if (targetLink) { // 获取a标签的href属性值,然后打开链接 window.open(targetLink.href); } </script> </body>
方案二:用getElementsByClassName
<body> <a href="https://example.com" class="1"></a> <script> // 这个方法返回的是元素集合,需要取第一个元素 const linkList = document.getElementsByClassName('1'); // 检查集合里有元素再操作 if (linkList.length > 0) { window.open(linkList[0].href); } </script> </body>
最后给你个小提醒:
尽量别用纯数字当类名哦,虽然现代浏览器能兼容,但不符合HTML的规范,后续可能会遇到奇怪的问题,换成"link-1"这种带字母的类名会更稳妥~
备注:内容来源于stack exchange,提问作者Uncommon Windmill




