JQuery对象与Dom对象初次入坑
来源:互联网 发布:电脑性能评估软件 编辑:程序博客网 时间:2024/05/15 23:45
首先感谢前端大佬对自己的指点
问题背景:测试平台在做api用例管理的时候,有对api的编辑功能,用户点击编辑打开的编辑页面中有动态的根据api的参数的数量生成input输入框并进行赋值,然后博主在使用JQuery赋值函数.val()的时候发现前端报错 inputs[i].val is not a function,下面进行分析
下图是截取的api表格中的,可以看到这里有两个请求参数 phone 和action
用户点击编辑后的实现效果如下图
这部分的处理代码如下
let params = [];params = para.split(',');//console.log(params);for (let i=0;i<params.length;i++){ add_params(); setTimeout(function () { let inputs = $('#paramsgroup > input'); //console.log(inputs[i], typeof inputs[i]); $(inputs[i]).val((params[i])) },10)}
这里博主在调试的时候打印了inputs[i]和他的类型,确实没有问题,然后使用以下代码进行input赋值的时候就出现了错误提示
inputs[i].val((params[i]))
这个是因为通过定位获取到的inputs对象组就是dom对象,inputs[i]当然也是dom对象,是没有val()函数的,必须使用美元符号转成JQuery对象之后就成功实现了效果,为了对比,我们使用dom对象的value属性
let params = [];params = para.split(','); //console.log(params); for (let i=0;i<params.length;i++){ add_params(); setTimeout(function () { let inputs = $('#paramsgroup > input'); //console.log(inputs[i], typeof inputs[i]); //$(inputs[i]).val((params[i])) inputs[i].value = params[i] },10) }
也实现了同样的效果,证明确实之前的问题是JQuery对象与dom对象混用导致
附上在chrome console里面进行测试。
显然a[0]是个dom对象,我们通过美元符号转成JQuery对象之后,可以点击查看‘proto’,里面包含了各种函数
阅读全文
0 0
- JQuery对象与Dom对象初次入坑
- Dom对象与Jquery对象
- jQuery对象与DOM对象
- jQuery对象与dom对象
- jquery 对象 与dom对象
- JQuery对象与DOM对象
- Dom对象与Jquery对象
- jquery对象与DOM对象
- jquery对象与DOM对象
- jQuery对象与DOM对象
- JQuery对象与DOM对象
- jQuery对象与DOM对象
- JQuery对象与DOM对象
- jQuery对象与DOM对象
- DOM对象与JQuery对象
- jQuery对象与DOM对象
- jQuery对象与DOM对象
- jQuery对象与DOM对象
- 对Java多线程得了解
- 81. Search in Rotated Sorted Array II
- 关于 input 输入搜索的优化
- JAVA SE — Day 17
- PAT考试乙级1049(C语言实现)
- JQuery对象与Dom对象初次入坑
- Porting a Driver from UMDF 1 to UMDF 2
- Tensorflow的应用(一)
- Ubuntu Sqlite3
- Codeforces Round #447 (Div. 2) ABCDE
- SEO变现的途径有哪些?
- 给某个标签添加click事件,通过jQuery写click方法的方式,如何实现
- Spring异步任务处理,@Async的最基础的配置和使用
- Windows 下编译 OpenSSL