jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – $(this)在.click(function(){…})里面是空的,为什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个 jquery代码,允许我点击一个链接获取它的父级并在另一个地方更改一些值:

$("a.menu_filter_SELEct").click(function(){
  var parent_filter = $(this).parent("tr");
  // update value
  parent_filter.find(".filter_value").html($(this).html());
});

问题是它在$(this)上得到一个空值,这是一个意想不到的行为,我不明白为什么它不起作用,任何想法?

这是在方法内部使用断点的控制台调试:

$(this)
> null
this
> <a class=​"menu_filter_SELEct" href=​"http:​/​/​localhost:​3000/​#" rel=​"1">​test</a>​

解决方法

我认为这是因你的函数接收一个事件作为参数,你需要event.target.

$('a.menu_filter_SELEct').click(function(evt) {
    var parent_filter = $(evt.target).closest('tr');

我还建议使用最近而不是父,因为即使有人将< b>,< i>放入< b>,< i>或者< span>在锚附近.我也用find代替孩子.

编辑:事实上,这在FireFox中引用了锚点对象,但我无法确定它是否在其他浏览器中以相同的方式实现.但是event.target可以引用子对象,如果文档是这样的

<a><b>some text</b> other text</a>

然后此事件处理程序可以输出不同的元素

$(a).click(function(event) { console.log(this,event.target); });

尝试在FireBug中运行此代码,看看它是如何工作的.

大佬总结

以上是大佬教程为你收集整理的jquery – $(this)在.click(function(){…})里面是空的,为什么?全部内容,希望文章能够帮你解决jquery – $(this)在.click(function(){…})里面是空的,为什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。