JQuery this和$(this)的区别及获取$(this)子元素对象的方法

1.JQuery this和$(this)的区别

相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢?

       首先来看看JQuery中的  $()  这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象。那么,当你在网页中alert($('#id'));时,会弹出一个[object Object ],这个object对象,也就是jquery对象了。

       那么,我们再回过头来说$(this),这个this是什么呢?假设我们有如下的代码:

$("#desktop a img").each(function(index){

            alert($(this));

            alert(this);

}

那么,这时候可以看出来:

alert($(this));  弹出的结果是[object Object ]

alert(this);        弹出来的是[object HTMLImageElement]

也就是说,后者返回的是一个html对象(本例中是遍历HTML的img对象,所以为HTMLImageElement)。

很多人在使用jquery的时候,经常this.attr('src');   这时会报错“对象不支持此属性或方法”,这又是为什么呢?其实看明白上面的例子,就知道错在哪里了:很简单,this操作的是HTML对象,那么,HTML对象中怎么会有val()方法了,所以,在使用中,我们不能直接用this来直接调用jquery的方法或者属性。

 

2.获取$(this)子节点对象的方法:find(element)

明白了$(this)和this的区别,再来看看这个例子:(假设,我的页面中a标签包含img,并含有src属性),当我在遍历的时候,想取到$(this)下img中src的地址

      $("#desktop a ").each(function(index){

         var imgurl=$(this).find('img').attr('src');

         alert(imgurl);

        }

其中 .find(element) 是返回一个用于匹配元素的DOM元素,这样就可以取到想要的src地址了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JQuery中的this表示当前被选中的元素,在使用JQuery方法时会基于这个元素进行操作。如果要针对this的子元素进行操作,可以使用JQuery提供的多个方法来选择并操作子元素。 首先,可以使用find()方法来选择this的子元素。例如,如果this是一个父元素,我们可以使用this.find("子元素选择器")来选择所有子元素,然后对它们进行操作。 另外,可以使用children()方法选择this的直接子元素。这个方法只会选取this的直接下级元素,而不会选择更深层次的子元素。 此外,还可以使用siblings()方法来选择this的同级元素,这些元素具有与this相同的父元素。这个方法可以用于选择和操作其他的兄弟元素。 还有一个常用的方法是next()和prev(),分别用于选择this的下一个兄弟元素和上一个兄弟元素。这些方法很有用,特别是在需要对this的相邻元素进行操作时。 另外,如果需要选择this的第一个子元素或最后一个子元素,可以使用:first-child和:last-child选择器。例如,this.find(":first-child")将选择第一个子元素,this.find(":last-child")将选择最后一个子元素。 总之,JQuery中的this可以通过使用不同的方法和选择器来选择和操作其子元素,包括find()、children()、siblings()、next()、prev()等等。这些方法可以根据需要选择合适的子元素,然后对它们进行各种操作。 ### 回答2: jQuery中的this是指当前选中的元素,而其子元素可以通过this来进行遍历和操作。 首先,通过jQuery选择器选中元素后,this就表示当前选中的元素。我们可以使用this来获取该元素的子元素。 例如,假设我们有一个ul列表: <ul> <li>第一个元素</li> <li>第二个元素</li> <li>第三个元素</li> </ul> 我们可以使用jQuery选择器选中ul,并使用this来获取子元素li: $("ul").each(function(){ $(this).children("li").each(function(){ // 这里的this表示当前选中的li元素 console.log($(this).text()); }); }); 上述代码中,我们先使用each()方法遍历选中的ul元素,通过children()方法获取子元素li,然后再使用each()方法遍历li元素。在li元素的遍历中,this表示当前选中的li元素,我们可以通过$(this)来操作和获取li元素的属性和内容。 总结起来,通过this可以获取当前选中元素的子元素,进而实现对子元素的遍历和操作。同时,也可以通过this来获取子元素的父元素,进行父子元素之间的交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值