如何使用jQuery通过子元素内容查找并隐藏其父元素
关于用
this指代find匹配元素并隐藏其父元素的问题 当然可以用this来指代你通过find方法定位到的元素!不过得注意回调函数的上下文,这是让this正确工作的关键。
具体用法说明
在jQuery的方法链中(比如find()之后搭配each()、filter()这类遍历/筛选方法时),普通函数作为回调的话,this会自动指向当前正在处理的DOM元素:
// 示例代码:找到内容符合条件的元素,隐藏它的父元素 $('.your-parent-container').find('.target-child').each(function() { // 这里的this就是当前匹配到的.target-child元素 if ($(this).text().trim() === '你要检查的内容') { $(this).parent().hide(); // 直接通过this获取父元素并隐藏 } });
注意避坑
如果你用了箭头函数作为回调,this的上下文会绑定到外层作用域(而不是当前DOM元素),这时候就不能用this来指代目标元素了。所以一定要用普通函数来写回调哦!
比如错误示例:
// 箭头函数里this不会指向当前元素,这样写会失效 $('.container').find('.target').each(() => { $(this).parent().hide(); // 这里的this不是你想要的目标元素 });
只要注意好回调函数的类型,用this来指代find定位到的元素,进而隐藏其父元素是完全可行的~
内容的提问来源于stack exchange,提问作者Realto619
相关产品推荐
相关产品推荐

