首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

EasyUI Datagrid 取值技巧:動態屬性名需用方括號語法

     編輯:程式設計疑難解答

問題場景

EasyUI Datagrid 獲取行數據時,屬性名存儲在變量 obj 中(如 "CS4"),直接寫 rows[0].obj 返回 undefined。

原因

JavaScript 中 . 操作符**只能用於標識符字面量**,無法使用變量作為屬性名。rows[0].obj 會查找名為 "obj" 的屬性,而非變量 obj 的值。

正確寫法


var obj = "CS4"; // 動態屬性名
var value = rows[0][obj]; // 方括號語法,obj 為變量
console.log(value); // 正確輸出 CS4 對應的值

擴展:批量獲取多行多欄


var rows = $('#dg').datagrid('getRows');
var fields = ['CS4', 'CS5', 'CS6'];
var result = rows.map(row => {
    var obj = {};
    fields.forEach(f => obj[f] = row[f]);
    return obj;
});
console.log(result);

避坑提示

  • 所有動態屬性訪問、屬性名含特殊字符、屬性名為數字時,**統一使用方括號 []** 。
  • for...in 遍歷對象屬性時,鍵為字符串,天然適配方括號。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved