"dTableRowData": [
{
"id": "1",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
}
]
上面是我的数组,我需要通过"id"找到"action"的值(如果存在action)。请帮我用jQuery实现这个。
这个问题已经结束
我认为你需要像下面这样的东西。你有一个JSON,如下所示。
var data = {"dTableRowData": [
{
"id": "1",
"rowData": [
"tt",
"Sep13, 2010"
],
"action": [
{
"hrefvar": "aaa",
"label": "fff"
},
{
"hrefvar": "bbb",
"label": "Details"
},
{
"hrefvar": "ccc",
"label": "View"
}
]
}
]}
你想为dTableRowData
中的每个对象得到一个action
。我给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);
首先,它与jQuery
无关。其次,这是一个语法错误。您需要将其包装在{
和}
中以使其有效。您可以使用这个工具来检查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"
]
}
]
};
这个函数返回所有具有
操作的idfunction 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);
小提琴来了
编辑:如果您想为特定的id
获得actions
,您需要像下面这样更改代码:
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;
}
}
}
}
这就是你如何使用它。
var actions = getRequiredActions("1",array);
console.log(actions);
最终小提琴