JQuery中的 $() 这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象。那么,当你在网页中alert($('#id'));时,会弹出一个[object Object ],这个object对象,也就是jquery对象。
那$(this)是什么呢?
看下面的示例:
<input type="submit" class="btn btn-success" value="提交">
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script>
$(document).ready(function () {
var btn = $(".btn")[0];
btn.onclick =function() {
console.log($(this));
console.log(this);
}
})
</script>
点击提交按钮,得到结果如下:
k.fn.init [input.btn.btn-success]
<input type="submit" class="btn btn-success" value="提交">
可以看到前者是一个jq对象,后者则是动作的接受者元素本身。
那么要怎么找到当前操作对象的子对象,并对它进行操作呢?
我们假设想完成如下操作:
当我点击按钮时,将它里面的a标签隐藏起来:那么首先我们要得到当前操作的按键对象,这可以通过$(this)得到,那怎么找到它的子对象呢?
<script>
$(document).ready(function () {
var btn = $(".btn")[0];
btn.onclick =function() {
console.log($(this));
console.log(this);
$(this).find("a").addclass('hidden')
}
})
</script>
一种方式是在$(this)的基础上使用find()方法,去找这个子元素,然后对它进行操作。