前端开发路上的坑01——find寻找元素

最近在维护78年的jsp项目(没错,就是我们口中常吐槽java,jsp一体的远古项目,那密密麻麻的一个jsp文件,成万行代码,同一文件都不知道多少人个改过,代码风格和命名各式各样,找文件和调试代码占了一半以上的开发时间,直接蒙圈了),辛辛苦苦的在本地写完,调试好,心心念念的更新到测试服,结果一点开直接来个大红花,给我整麻了。

。。。 经过大半小时排错后 。。。

解决:

// 错误
let dataJsonString = $("form").serializeArray()[4].value;

// 改为
let dataJsonString = $("form").find("#questionJson").val();

// 优化(避免该页面有多个form,导致获取不了指定的form)
let dataJsonString = $("#form-left").find("#questionJson").val();

分析:

本地:直接获取指定下标那条数据,正常打印出来
前端开发路上的坑01——find寻找元素_第1张图片
测试服:同样代码获取指定下标的值不一样,就是因为本地分支是独立与当前生产环境所创建的项目,而测试服有多个分支合并总成在一起的,所以可能其他分支合并到测试服的时候,在指定下标4的之前插入了form的内容,因此,读到下标为4的数据不是原来你想要的内容。
这种直接使用指定下标,模糊寻找的思路做法,是不稳定的,特别在多人合作开发的过程中,不清楚别人代码的时候容易出错。
前端开发路上的坑01——find寻找元素_第2张图片
前端开发路上的坑01——find寻找元素_第3张图片在这里插入图片描述
总结:寻找元素尽量要通过确切的id、class确认父元素,再通过find寻找其子元素的id或class确认子元素,然后val()取值。
最后,附上jq方法文档:jQuery文档

你可能感兴趣的:(java,javascript,前端)