JQuery中使用this获取a标签中的文字

发布于 2022-09-06 04:27:42 字数 515 浏览 17 评论 0

我想在点击a标签的时候使用"this"获取这个a标签中的文字"按钮1",但是弹出来的是个空字符串,求指导

<a id="btn" onclick="addTabs()" class="easyui-linkbutton" data-options="" style="width: 100%">按钮1</a>
<script type="text/javascript">
       function addTabs() {
           var text = $(this).text();
           alert(text);
       }
   </script>

弹出如图:
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烟沫凡尘 2022-09-13 04:27:42

首先说一下你的问题出在哪里:你在a标签里添加了点击事件调用了addTabs()这个函数。并没有传递任何有关a标签的信息过去。此时函数中的this指向的是window

<script>
    function addTabs() {
        var text = $(this).text();
        console.log($(this)) //window对象
    }
</script>

下面是正确的写法:

html:
<a id="btn" onclick="addTabs(this)" class="easyui-linkbutton" data-options="" style="width: 100%">按钮1</a>
javascript:
<script>
    function addTabs(obj) {
        var text = $(obj).text();
        console.log(text);
    }
</script>
触ぅ动初心 2022-09-13 04:27:42

兄弟,遇到这种错可以自己先调试下,很好发现原因的。

比如说你这个,很可能是this并没有指向a标签,而是其他对象,你是不是可以输出一下this,看下它是指向谁,然后顺藤摸瓜,一步一步找到原因,解决问题。javascript的this很有意思(坑)的一个点,一步步来,你的印象会深一点,比大家直接给你答案要好。

ps:调试的时候,我比较习惯用console,也建议你用这种方法,你不觉得alert调起来太麻烦了么。。。

看海 2022-09-13 04:27:42
这个时候获取的this是window 自然获取不到你的值了

修改如下,通过参数传递过去
<a id="btn" onclick="addTabs(this.innerHTML)" class="easyui-linkbutton" data-options="" style="width: 100%">按钮1</a>
<script type="text/javascript">
    function addTabs(str) {
        alert(str)
        console.log($(this));// window
    }
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文