在当前元素的 onchange 上发送 $(this)

2024-04-28

我有这个html

<select class="category" style="margin-bottom: 5px;" onchange="getProducts('standard_product');">

正如您所看到的 onchange 调用 getProducts 函数。我想知道是否有办法发送这样的信息

<select class="category" style="margin-bottom: 5px;" onchange="getProducts('standard_product', $(this));">

我希望将其与当前选择相关联


如果您尝试设置的值this在你的函数中,你可以使用.call:

onchange="getProducts.call(this, 'standard_product');"

现在在您的 getProducts 函数中,this将是接收事件的元素。

function getProducts( prod ) {

    alert( this );  // the <select> element

}

您还可以通过event object:

onchange="getProducts.call(this, 'standard_product', event);"

...并在您的函数中引用它:

function getProducts( prod, e ) {

    alert( this );  // the <select> element

    alert( e.type );  // the event type

}

EDIT:正如所指出的@Cyber​​nate https://stackoverflow.com/users/527185/cybernate,这将 DOM 元素设置为this。你需要把它包裹在你的getProducts功能$(this),或者在您的内联处理程序中将其设置为这样。

虽然设定this元素本身更符合典型的事件处理程序行为。


EDIT:为了进一步解释什么.call是的,它可以让你manually设置值this在您正在调用的函数中。

采取这个功能,它只是提醒this:

function some_func() {

    alert( this );

}

以基本方式(在浏览器中)调用它使得this引用 DOM 窗口。

some_func();  // the alert will be DOM Window

但现在让我们调用使用.call,并将第一个参数设置为123.

some_func.call( 123 );  // the alert will be 123

您可以看到现在警报显示123。函数没变,只是值变了this因为我们已经使用手动设置它.call.

如果您有其他参数要发送,只需将它们放在thisArg.

function some_func( arg1 ) {

    alert( this );
    alert( arg1 );

}

some_func.call( 123, 456 );

The this警报将是123,并且您发送的下一个参数将被设置为arg1参数,所以arg1456.

所以你可以看到call基本上切掉你发送的第一个参数,将其设置为this,并将其余参数设置为与函数参数关联的普通参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在当前元素的 onchange 上发送 $(this) 的相关文章

随机推荐

  • Symfony2 - 访问被拒绝(用户未经过完全身份验证)

    我正在使用 Symfony2 开发一个网站 直到今天 登录没有问题 但现在登录时我没有正确验证 Symfony 分析器将我列为logged in as anon而不是我登录的用户 我还被重定向回登录页面而不是目标路径 登录过程由传统的登录表
  • cron 作业和 PHP (Zend Framework) 入门

    我对 cron 作业这个主题完全陌生 所以我不知道从哪里开始学习它们 何时 为何或如何将它们与我的 Zend Framework 应用程序或一般的 PHP 一起使用 任何人都可以通过示例解释该过程 或者推荐一些好的资源来入门吗 Cron 作
  • 笛卡尔散点图上的极坐标网格线

    我有一个脚本来创建散点图 使用gscatter 基于另一个脚本生成的 x y 数据 离散数据点 不连续 由于这些数据点实际上是圆形空间中某些对象的位置 因此添加极坐标网格线将使绘图更有意义 有谁知道如何在笛卡尔散点图上显示极坐标网格线 或者
  • GNU 链接器 - 孤立部分和符号分配

    在阅读了足够多有关 GNU 链接器的文档后 我对结合有关实现自定义链接器文件的两个不同概念感到困惑 第一个概念是孤儿节 https sourceware org binutils docs ld Orphan Sections html O
  • python asyncio 中的“Executing

    在设置 asyncio future 的结果时会打印下面的消息 Executing
  • 如何在我的类型类中访问我的服务(DependencyInjection)?

    我创建了一个服务 DependencyInjection 并在控制器上将其用作 this gt get service name gt someMethod 我想知道如何在我的表单类上使用它 这是我的课程示例形式 namespace Com
  • 如何为 Google Release 上的 Actions 提供不同的履行 URL?

    文档位于https developers google com actions deploy release environments https developers google com actions deploy release e
  • 如何向所有用户授予团队项目访问权限?

    在我们的组织中 我们有一些项目 根据政策 向所有有权访问 TFS 的开发人员 QA 和项目经理开放 在包含超过 150 个团队项目和 500 多个有效用户的团队项目集合中 我们如何轻松地将所有有效 TFS 用户添加到某个特定项目的 读者 组
  • 在文件之间共享变量(没有全局变量)

    据我了解 使用创建的变量let在 Javascript 中不能是全局的 我thought这意味着该变量仅存在于该特定文件中 然而 当我做一个简单 人为的例子时 A js let a 5 B js console log a 索引 html
  • 字符串到 CLLocation 纬度和经度

    我有两个表示纬度和经度的字符串 例如 56 6462520 我想将其分配给 CLLocation 对象以与我当前的位置进行比较 我尝试了以下代码 但只收到错误 CLLocation LocationAtual CLLocation allo
  • Objective-C 中“@public”是什么意思?

    读完一篇后关于 private 的问题 https stackoverflow com questions 844658 what does private mean in objective c我明白这是如何运作的 但是 由于所有变量都默
  • 操作系统如何知道缺失页面的磁盘地址?

    分页充当虚拟地址空间和物理地址空间之间的间接层 给定一个地址 操作系统 OS 内存管理单元 MMU 将其转换为主内存位置 我的问题是 主内存中不存在该页面的情况 操作系统如何知道在磁盘上哪里可以找到该页面 它在哪里存储1的信息 它不存储在页
  • 如何使用 ASP.NET 访问 Facebook 广告 API

    我希望访问使用适用于 NET 的 FaceBook 工具包的 FaceBook 广告 API 我在 codeplex com 中找到的 希望访问ads estimateTargetingStats尤其 Facebook 广告 API 详情
  • Html 5 音频标签自定义控件?

    我觉得我在这里服用了疯狂的药丸 因为我不知道如何使用自定义控件渲染 html 5 音频标签 到目前为止我有这个 html 它工作没有问题
  • 如何在 iPython 笔记本中保存单元格的输出

    我希望能够保存 iPython 笔记本的文本输出cell到磁盘上的文件中 我有 2 个额外的要求 要求 能够重新运行单元并用最新的内容覆盖我的输出 还显示笔记本内的输出 我已经弄清楚如何使用 capture将 iPython 笔记本的单元格
  • Swift Alamofire + Promise 捕获

    伙计们 除了catch之外 以下工作正常 xcode错误与expected member name following 这是使用 PromiseKit 进行承诺的正确方法吗 欢迎所有建议 谢谢 IBAction func loginButt
  • 使用 ProcessBuilder 运行 msys.bat

    我正在尝试使用 ProcessBuilder 在 java 中运行 msys bat 当我使用程序运行 bat 文件时 出现以下错误 找不到 rxvt exe 或 sh exe 二进制文件 正在中止 按任意键继续 这是代码 ProcessB
  • 当字符串和类都是引用类型时

    这是我上次面试的情况 问题 字符串存储在哪里 Answer 堆因为它是引用类型 问题 解释一下下面的代码 static void Main string args string one test string two one one one
  • 增加 C++ 程序 CPU 使用率

    我有一个用 C 编写的程序 每秒运行多个 for 循环 而不使用任何会使其因任何原因等待的东西 它始终使用 2 10 的 CPU 有没有什么方法可以强制它使用更多的CPU并进行更多的计算而不使程序变得更复杂 此外 我在 Windows 计算
  • 在当前元素的 onchange 上发送 $(this)

    我有这个html