正在尝试使用javascript获取链接

正在尝试使用javascript获取链接,javascript,html,Javascript,Html,实际上,我正试图在javascript中创建一个具有单击功能的侦听器,以在表内创建重定向 document.body.addEventListener('click',evt=>{ const link=evt.target.closest('td.loader'); 如果(!link)返回; evt.preventDefault(); window.location.href=link.href; }); 谷歌 您在这里犯了一个小错误。链接必须位于锚定标记中。然后,只有浏览器才能将其标识

实际上,我正试图在javascript中创建一个具有单击功能的侦听器,以在表内创建重定向


document.body.addEventListener('click',evt=>{
const link=evt.target.closest('td.loader');
如果(!link)返回;
evt.preventDefault();
window.location.href=link.href;
});

谷歌

您在这里犯了一个小错误。链接必须位于锚定标记中。然后,只有浏览器才能将其标识为链接。所以我改变了你的HTML如下现在它的工作良好

    <table>
    <tr>
        <td class="loader">
            <a href="https://developer.mozilla.org/">Google</a>
        </td>
    </tr>
</table>

所以,说清楚点,我没有找到一个100%好的javascript解决方案。我所能做的就是在表格的每个单元格中放置一个div,设置高度和宽度100%,如下所示:

<table>
  <tr>
    <td class="loader">
     <a href="google.com">
       <div style="height:100%;width:100%;">
     </a>
      Google
    </td>
  </tr>
</table>

谷歌
然后,我可以使用以下javascript:

document.body.addEventListener('click', evt => {
     const link = evt.target.closest('td.loader a');
     if (!link) return;
     evt.preventDefault();
     
     document.body.innerHTML = '<h3 style="color:red">loading link</h3>';
     const href = $(this).find("a").attr("href");
     window.location = href;
    });
document.body.addEventListener('click',evt=>{
const link=evt.target.closest('td.loader a');
如果(!link)返回;
evt.preventDefault();
document.body.innerHTML='加载链接';
常量href=$(this.find(“a”).attr(“href”);
window.location=href;
});
事实上,它之所以有效,是因为我可以使用html链接和javascript侦听器。但由于css(如果某些单元格由不同的行数组成,则不可能有一个完整的单元格可点击),它并不完美

但这并不坏

最后,我意识到语义用户界面(我在这个应用程序中使用这个css框架)的目的是一个类

完美的结果和更少的javascript代码,所以我选择了这个解决方案


万一有人有同样的问题,引导程序也有同样的属性。

如果您的代码中有几个语法错误,请尝试以下操作:

let tableLink=document.querySelector('td.loader');
tableLink.addEventListener('click',evt=>{
const link=tableLink.getAttribute('data-href');
evt.preventDefault();
window.location.href=链接;
});

谷歌

您能描述一下哪里出了问题/添加了一些dbg吗?->“最接近的()方法遍历元素及其父元素(指向文档根),直到找到与提供的选择器字符串匹配的节点。将返回自身或匹配的祖先。如果不存在此类元素,则返回null。”会发生什么情况?你在期待什么?你调试了吗?有错误消息吗?所以,我有一条错误消息:“document.body.addListener不是一个函数”请创建一个Yes,我将发布一个新的html,稍微复杂一点。在这里保存一个链接。我会尽我最大的努力,我建议你不要把Jquery和标准JS混在一起,使用其中一种。是的,你是绝对正确的。不幸的是,我的经理要求我使用它:谢谢你的回答。实际上,当我们想使用javascript时,它绝对是最好的解决方案。