Demo: http://jsbin.com/gaxalupuka/edit?html,js,output (нажмите кнопку Run with JS
первый)
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<button type="button" onclick="showRajatMessages()">Show Rajat Messages</button>
<ul id="result"></ul>
</body>
</html>
JS:
var data = [
{name: 'Rajat',
messages: [
{id: 1, message: 'Hello'},
{id: 3, message: 'Hello 2'}
]
},
{name: 'Himesh',
messages: [
{id: 2,message: 'Hello'}
]
},
{name: 'David',
messages: [
{id: 4,message: 'Hello'}
]
},
{name: 'Rajat',
messages: [
{id: 1, message: 'Hello 3'},
{id: 3, message: 'Hello 4'}
]
}
];
function showRajatMessages() {
for (i = 0; i < data.length; i++) {
if(data[i].name == "Rajat"){
showMessages(i);
} else {
continue; // skip
}
}
}
function showMessages(i) {
console.log(i);
var messages = data[i].messages;
for (j = 0; j < messages.length; j++) {
$("#result").append("<li>" + messages[j].message + "</li>");
}
}
Пояснение:
Во-первых, мы слушаем нажатие кнопки. Эта кнопка будет запускать функцию showRajatMessages()
.
Внутри showRajatMessages()
функция, мы петляем через данные. Если узел имеет name
, равный Rajat
, мы собираемся вызвать функцию showMessages()
и передать позицию объекта внутри массива data
как i
.
Внутри функции showMessages()
у нас есть доступ к i
, который только что передан из функции showRajatMessages()
.
Итак, внутри здесь мы находим нужный объект из массива data
и захватываем ключ messages
.
И для каждого элемента внутри ключа messages
, мы добавим message
как <li>
и нажмите <li>
в <ul>
с именем идентификатора result
внутри HTML, используя JQuery .append()
метод.
Не ясно. Что вы пытаетесь сделать? Каков ваш ожидаемый результат? –
@zulhfreelancer: Я хочу перебирать набор данных 'messages', относящийся к 'Rajat', и отображать их в виде сообщений чата –
, пожалуйста, будьте немного более подробными в отношении того, чего вы хотите достичь. – Blip