JQuery基本方法报错:...isnotafunction的问题
程序员文章站
2022-06-03 17:44:18
是否碰到过类似问题(前提是正确引入了jquery)
看图说问题
其实是:jquery选择器得到的元素对象,和jav...
是否碰到过类似问题(前提是正确引入了jquery)
看图说问题
其实是: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方法不会报错。
上一篇: js窗口尺寸获取常用属性
推荐阅读
-
Jquery网页出现的乱码问题的三种解决方法
-
jquery动态改变onclick属性导致失效的问题解决方法
-
jquery库或JS文件在eclipse下报错问题解决方法
-
解决自定义$(id)的方法与jquery选择器$冲突的问题
-
jQuery最基本的功能实现方法
-
jQuery setTimeout传递字符串参数报错的解决方法
-
jquery开发中缓存问题的几个解决方法
-
IE8下Jquery获取select选中的值post到后台报错问题
-
Jquery $.getJSON 在IE下的缓存问题解决方法
-
mysql报错1033 Incorrect information in file: ‘xxx.frm’问题的解决方法