jQuery DataTables条件判断else未正确显示row[7]原始值求助
解决jQuery DataTables显示
row[7]字符串而非实际值的问题 这种情况几乎可以肯定是你在render函数里错误地把row[7]当成字符串字面量返回了,而不是引用数组对应的元素值。我来帮你拆解问题并给出修复方案:
常见错误写法
你可能写了类似这样的代码:
columns: [ { data: null, render: function(data, type, row) { // 假设你判断的是row[X]列的值是否为1 if (row[X] === 1) { return "FINISHED"; } else { return "row[7]"; // 这里加了引号,导致直接输出字符串"row[7]" } } } ]
引号包裹的"row[7]"会被JavaScript当成普通字符串处理,而不是去读取row数组第7索引位置的实际数据。
正确写法
只需要去掉row[7]的引号,直接引用数组元素即可:
columns: [ { data: null, render: function(data, type, row) { // 替换成你实际用来判断的列索引(比如row[0]、row[5]等) if (row[你的判断列索引] === 1) { return "FINISHED"; } else { return row[7]; // 直接引用数组元素,获取对应列的实际值 } } } ]
额外排查点
如果还是有问题,可以检查这两点:
- 索引是否正确:DataTables的
row数组是从0开始计数的,确认row[7]确实对应你想要获取的那列数据(比如第8列) - 后端数据是否正常:确保后端返回的数据集里,对应位置的字段有有效值,没有出现
undefined的情况
内容的提问来源于stack exchange,提问作者Eddie B
相关产品推荐
相关产品推荐

