JQuery关键字“this”没有获取属性值

2023-12-15

我正在使用 JQuery 关键字 this。

我遇到了一些我不明白的事情。 这是我的代码:

<body>  
    <a id="link_1">jQuery.com</a>

    <!-- adding JQUERY -->  
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>            
    <!-- my JavaScript -->      
    <script>
      $("a").attr("href", "target_1");  
      $("a").attr("new_attribute", "new_attribute_value");

      $(function ($) {          
        $("a").mouseenter(function(){
                alert(this.id);
                alert(this.href);
                alert(this.new_attribute);          
         });        
       });  
    </script> 
</body>

我希望 JQuery 返回 id、href 和我的 new_attribute 作为警报消息。

我可以在关键字“this”(使用 this.id)上调用 id,它会按预期工作。 我还可以调用关键字 this 上的 href(使用 this.href),并且它按预期工作(即使我仅使用 JQuery 设置 href 的值(非内联))。

然而,使用新属性“new_attribute”,这种设置和获取无法按预期工作。

我的问题:我究竟做错了什么?是否只能在关键字“this”上调用“某些/有限”属性。


这是因为new_attribute不是有效的属性。

一些内置属性会映射到属性,当您这样做时

this.id

你真的得到了id属性,而不是属性,因为那样

this.getAttribute('id')

你可以做

this.getAttribute('new_attribute')

但你真的应该使用data-*属性,不是你自己的,而是 jQuery 的data()在内部映射数据并且不添加属性,但在您的情况下这可能就是您想要的,只需在元素上存储任意数据

$("a").attr("href", "target_1");  
$("a").data("new_attribute", "new_attribute_value");

$(function ($) {          
    $("a").mouseenter(function(){
            alert(this.id);
            alert(this.href);
            alert( $(this).data('new_attribute') );
    });        
});  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery关键字“this”没有获取属性值 的相关文章

随机推荐

  • JasperReports 动态输入控件

    我目前正在尝试创建具有一些特殊输入控制行为的 JasperReport 报告 我的需求是 四个输入控件 其中两个是日期框 另一个是单选按钮 根据单选按钮的选择 其中一个数据框应该可见或不可见 因此 如果选择选项 1 则显示两个日期框 如果选
  • 从 PHP 运行 Linux 命令

    我的情况有点特殊 我正在尝试从名为 Diascope 的 PHP 脚本运行视频编码程序 该程序依赖于 ImageMagick 提供的 转换 命令 我有一个 bash 脚本 它执行一个非常简单的转换 然后运行名为 Diascope 的应用程序
  • 在MapReduce Job配置中设置参数

    有没有办法在作业配置中设置参数Mapper并且可以从Reducer 我尝试了下面的代码 在映射器中 map context getConfiguration set Sum 100 在减速机中 reduce context getConfi
  • 如何将汇编代码片段转换为二进制机器代码片段?

    是否可以自动将 x86 汇编代码片段 非完整程序 转换为相应的二进制机器代码片段 例如 xor eax eax mov ebx 12 eax into 31 c0 89 43 0c 我真的只需要相应的字节集 通常我必须查看一些指令集参考并手
  • 从 STL 文件渲染 2D 图像

    我想加载 STL 文件并生成一组不同旋转的 2D 图像 我了解了使用 numpy stl 的基础知识this例如 最终得到这个代码 from stl import mesh from mpl toolkits import mplot3d
  • 如何在保持透明度的情况下旋转GD图像库中的图像?

    我正在为我的网站制作一个皮肤预览器 我需要旋转图像的某些部分来创建该图像的表示形式以供用户查看 皮肤是一个PNG文件 它的所有部分可能都是透明的 甚至根本没有 我需要能够旋转该图像 同时保持图像内部的任何透明度透明 同时还使扩展边框 您知道
  • 当我单击表单中的按钮时提交表单。如何避免这种情况?

    我使用 twitter bootstrap 并且我想使用这些单选按钮以我的形式 问题是当我单击这些按钮中的任何一个时 表单都会立即提交 如何避免这种情况 我只想使用默认按钮 例如单选按钮 from div class control gro
  • 检查返回代码(或其他代码)以确保 MSI 已正确安装

    我正在使用 NSIS 安装一些 MSI 我在用着ExecWait msiexec passive liare SETUP LOG FILE i TEMP MyMsi msi 当 MSI 与已安装的应用程序版本相同时 安装会失败 已安装此产品
  • 删除 Django Rest Framework 响应中的标头

    我正在尝试删除Server来自 django Rest Framework 响应的标头 但我没有找到简单的方法 所以我创建了一个中间件来删除它 这是我的第一次尝试 中间件 py class RemoveHeaders object def
  • Vue.js 3 - 尝试构建一个具有 2 种布局的系统

    我是 vue js 初学者 3 我尝试构建一个具有两种布局的系统 1 对于已连接的用户 1 表示未连接的用户 在我的 router index js 中 我为每个路由添加一个元 const routes path name Home met
  • webview_flutter:未捕获(承诺中)NotAllowedError:写入权限被拒绝

    预期行为 使用复制文本Copy to clipboard从网站 行为 它会抛出以下错误 并且文本不会复制到 android 剪贴板 包 webview flutter I chromium 12065 INFO CONSOLE 0 Unca
  • Excel VBA - 退出for循环

    我想退出我的for当满足内部条件时循环 我怎样才能退出我的for循环时if条件已满足 我认为在我的人生结束时会有某种出口if声明 但不知道这将如何运作 Dim i As Long For i 1 To 50 Range B i Select
  • 使用 dataTable.js Bootstrap 表排序、过滤、分页

    我正在开发 asp net MVC 5 并创建了一个 Bootstrap 表来显示数据 现在我想应用分页 过滤和排序 为此我搜索了五篇文章并找到了这个链接 此链接中的技术非常简单 与我在项目中所做的相同 下面我已经包括了我的 js and
  • C 如何计算 sin() 和其他数学函数?

    我一直在研究 NET 反汇编和 GCC 源代码 但似乎找不到任何实际实现sin 和其他数学函数 它们似乎总是引用其他东西 谁能帮我找到他们吗 我觉得不太可能所有运行C的硬件都支持硬件中的三角函数 所以必须有一个软件算法某处 正确的 我知道有
  • “尽早失败”这句话是什么意思?您想什么时候这样做?

    尽早失败 这个表达是什么意思 在什么情况下这种方法最有用 什么时候你会避免这种方法 本质上 快速失败 又名早早失败 是对您的软件进行编码 以便 当出现问题时 软件会失败立刻 and 明显地如可能的 而不是试图在可能不稳定的状态下继续进行 快
  • 在Python中,如何将数字和字符串转换为字节数组?

    我想将一组配置选项编码为一长串十六进制数字 输入是数字 整数和浮点数 和字符串的混合 我可以用binascii a2b hex从字符串的标准库 整数的按位运算符 如果我去阅读一些关于浮点表示的内容 叹气 我可能也可以处理浮点数 现在 我的问
  • iOS Sprite Kit 碰撞与元素移动

    是否可以使用 Sprite 套件的物理主体进行元素碰撞并仍然允许元素相互穿过 我感兴趣的是仅当两个边界相互碰撞时才调用委托 然后允许它们相互穿过 是的 这是可能的 您可以注册对象之间碰撞的回调 但不会让碰撞影响对象本身 Raywenderl
  • 右键单击 Silverlight 4 应用程序中的列表框

    我正在尝试在 Winforms 应用程序中实现我以前认为理所当然的功能 我是一名 Silverlight 菜鸟 所以希望这一切都是基础知识 我在 Silverlight 4 应用程序中有一个列表框 我想做以下事情 右键单击列表框 让该项目位
  • 为什么 Promise 是 Monad?

    我一直在学习函数式编程 并且接触过 Monad Functor 和 Applicatives 根据我的理解 以下定义适用 a A gt B gt C A gt C B 函子 b A gt C B gt C A gt C B 单子 c C A
  • JQuery关键字“this”没有获取属性值

    我正在使用 JQuery 关键字 this 我遇到了一些我不明白的事情 这是我的代码 a jQuery com a