How can I check a value for null in jquery without getting an error?
本问题已经有最佳答案,请猛点这里访问。
我有这个代码:
1 | if (returneddata.daterangeparams.TimeUnitsFrom != null) { |
...当值确实为null时,会抛出此错误(如Chrome开发工具控制台中所示):
1 | Index:1031 Uncaught TypeError: Cannot read property 'TimeUnitsFrom' of null |
那么如何以一种可以避免错误的方式检查null呢?
根据这里的建议,我甚至试过这个:
1 | if (returneddata.daterangeparams.TimeUnitsFrom != null && variable !== undefined) { |
...但我仍然从浏览器的内容中得到同样的信息。
更广泛的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function populatedaterangeprams(rptval, returneddata) { var fromval = ''; var toval = ''; if (returneddata.daterangeparams.TimeUnitsFrom != null && returneddata.daterangeparams.TimeUnitsFrom !== undefined) { fromval = returneddata.daterangeparams.TimeUnitsFrom; } if (returneddata.daterangeparams.TimeUnitsTo != null && returneddata.daterangeparams.TimeUnitsTo !== undefined) { toval = returneddata.daterangeparams.TimeUnitsTo; } if (rptval === 1) { // Produce Usage $("#produsagefrom").val(fromval); $("#produsageto").val(toval); } else if (rptval === 2) { . . . |
那么如何在javascript / jQuery中安全地检查null呢?
UPDATE
正如Phil Varg所说,我需要这样做:
1 2 3 4 5 6 7 8 | if (returneddata != null && returneddata.daterangeparams != null && returneddata.daterangeparams.TimeUnitsFrom != null) { fromval = returneddata.daterangeparams.TimeUnitsFrom; } if (returneddata != null && returneddata.daterangeparams != null && returneddata.daterangeparams.TimeUnitsTo != null) { toval = returneddata.daterangeparams.TimeUnitsTo; } |
......但这似乎比大型强子对撞机上的有机硅和管道胶带工作更笨拙。 难道没有一种方法可以实现这一点,在这里检查返回的data.daterangeparams.TimeUnitsTo是否会首先检查前两个子粒子?
问题是
所以你需要检查