jquery - 对子元素的链接引用不起作用 JQuery
问题描述
我确定我错过了一些基本的东西,但在过去的一个小时里我一直在谷歌搜索/尝试一些东西并且没有取得任何进展。
非常简单:我想在单击父元素时显示/隐藏子元素(使用 cssvisibility
属性)。这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div onclick="test()">
<h2 class="t"> HI THERE</h2>
</div>
<script>
function test() {
var t = $(this).children('.t'); //THIS RETURNS [OBJECT OBJECT]
alert(t.attr('class')); //THIS IS "undefined"
t.css('visibility','hidden'); //THIS DOES NOT WORK
// $('.t').css('visibility','hidden'); //THIS WORKS
};
</script>
我试过.find()
.children()
和.siblings()
. 一个应该回答我的问题的好的堆栈溢出帖子没有 - 我尝试了每个答案/评论。我也试图找到引用这个元素的其他方法,但它需要来自已单击的父级(“t”类中的元素太多,无法通过 id 引用)。但是,它可以被标签名引用(被点击的父级只有一个子级)。
非常感谢所有帮助!
解决方案
在this
此上下文中(在函数中)使用时,它表示一个全局window
对象。
将您的功能更改为
function test(element) {
var t = $(element).children('.t');
//other calls
}
...并在您的 中,作为参数onclick
发送:this
<div onclick="test(this)">...</div>
推荐阅读
- windows - 在命令行上创建一个 tar.xz 文件
- javascript - Chart.js 一次向画布添加 200 个数据
- crystal-reports - 对最后具有指定值的组进行排序
- c# - 取消异步任务?
- intellij-idea - 如何告诉 Scriptrunner 忽略“org.intellij.lang.annotations.Language”
- c# - 通过实体框架更新 SQL Server 数据库
- python - 在多个 csv 文件中查询,以根据 pandas 列上的给定条件获取合适的数据集
- postgresql-11 - 无法打开文件“./.postgresql.conf.swp”:权限被拒绝
- javascript - 为什么我要用“类”而不是“功能”创建一个对象?
- javascript - 当输入在无状态功能组件中时,输入框的值是否可以在单击提交按钮时设置为空字符串?