"dTableRowData": [
{
"id": "1",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
}
]
上面是我拥有的数组,我需要找到" action"的值。通过" id" (如果有行动)。请帮我用jQuery实现这个目标。
此问题已关闭
答案 0 :(得分:0)
我认为你需要像波纹管那样的东西。你有一个类似下面的JSON。
var data = {"dTableRowData": [
{
"id": "1",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
}
]}
您想为action
中的每个对象获取dTableRowData
。我向dTableRowData
添加了大括号,否则会抛出错误。
所以这对我来说使用Javascript。
var actions = data.dTableRowData.map(function (obj) {
// Get each object in data.dTableRowData and get action according to it's id from object
return obj.action[obj.id];
});
console.log(actions);
答案 1 :(得分:0)
首先,它与jQuery
无关。
其次,它的语法错误。
您需要将其包含在{
和}
中以使其有效。
您可以使用this tool检查JSON的有效性。
接下来,您就是这样做的。我已经验证了JSON并添加了虚拟数据,因此有一个元素没有action
属性。
var array ={
"dTableRowData": [
{
"id": "1",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
},
{
"id": "3",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
},
{
"id": "2",
"rowData": [
"tt",
"Sep13, 2010"
]
}
]
};
这是一个返回所有具有操作的ID的函数
function getRequiredIDs(myArray){
var ids = [];
for (var tableRowData in myArray.dTableRowData){
var elements = myArray.dTableRowData[tableRowData];
if(elements.action!=null){
ids.push(elements.id);
}
}
return ids;
}
这就是你如何使用它
var ids = getRequiredIDs(array);
var result = ""
for(var i=0;i<ids.length;i++){
result+=ids[i]+" ";
}
alert("IDs that have actions are - "+result);
以下是fiddle
编辑:
如果您希望获得特定actions
的{{1}},则需要更改代码,如下所示。
id
这就是你如何使用它。
function getRequiredActions(_id,myArray){
for (var tableRowData in myArray.dTableRowData){
var elements = myArray.dTableRowData[tableRowData];
if(elements.id == _id){
if(elements.action != null){
return elements.action;
} else {
return false;
}
}
}
}