JQuery 基本方法报错:... is not a function的问题

是否碰到过类似问题(前提是正确引入了JQuery)
这里写图片描述

这里写图片描述

这里写图片描述
看图说问题

这里写图片描述

这里写图片描述

<input type="file" name="pic1" id="pic1" onchange="preview(this)" multiple="multiple">

其实是:JQuery选择器得到的元素对象,和JavaScript获取元素对象 的问题

上面两张图是我对 input元素的获取,使用的两种方式,pic1用的是原生JS方式,pic2使用的jQuery。

从打印结果可以看出来,第一个返回了我一个节点,而第二返回给我了一个数组。

为什么说这个问题,是因为我最近在开发中经常碰到.prev() .attr() .find() .css()等jQuery方法无法使用的情况
说明一下:jQuery .prev()获取同胞元素 目标前面的。
报错是:.prev() is not a function。
原因是我将jQuery的方法用到了JS对象上。

出现这个错误的原因是:
无论是使用ID选择还是什么 JQuery得到都是一个数组对象。如上面第二个。
当只是只是唯一对象的时候我们会直接$('#pic1').prev() 使用 没有问题。
但是当$('.className') 得到了不止一个时,我想调用其中的第二个就会 $('.className')[2] 而此时一个JQuery对象被我变成了一个JS 对象,所在当我使用.prev()的时候就报错,not a function。

解决这个问题的办法(暂时想到两个):
一、给你想要获取的元素加唯一的ID 或className
二、使用.eq()
.eq(n) 就是选第几个。

$('.className').eq(2).prev();

使用了eq() 后依旧是JQuery对象,所以在使用jq方法不会报错。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值