Вход

Просмотр полной версии : Получить все значения javascript обьекта!


imult87
16.03.2017, 19:51
Вот у меня есть к примеру код:

var inventory = {};
inventory.coin1 = "<b>1 Рубль 1890 года</b>";
inventory.coin2 = "<b>2 Рубля 1890 года</b>";
inventory.coin3 = "<b>3 копейки 1890 года</b>";
inventory.coin5 = "<b>5 Рублей 1890 года</b>";


inventory - добавляю в обьект 4 позиции, мне нужно следующее получить и вывести все эти позиции к примеру в div блок c id='inv', получить нужно именно сами значения. Как поштучно вывести я знаю, в цикле выводит только последние значение, а как сделать так что бы разом вывести все в div блок, я постепенно буду наполнять этот обьект, и всегда нужно что бы выводилось все в блок на страницу, что бы я видел все элементы обьекта. К примеру после пополнения блок должен выглядеть так!

<div id='inv'>
<b>1 Рубль 1890 года</b>
<b>2 Рубля 1890 года</b>
<b>3 копейки 1890 года</b>
<b>5 Рублей 1890 года</b>
</div>

Это как бы инвентарь, и туда будет все падать я даже не знаю правильный ли я выбрал подход для данной задачи! Помогите разобраться пожалуйста, я новичок в этом деле подскажите маленько, или ссылки на что то похожее!

рони
16.03.2017, 20:11
imult87,
в чём проблема сформировать строку с помощью for in и вставить в innerHTML
https://learn.javascript.ru/object-for-in#for..in

imult87
16.03.2017, 22:20
Ну вот я к примеру так делаю!

for (key in inventary) {
$('#inv').html(inventary[key]);
}

Выводит лишь последний элемент, можете поподробнее обьяснить может я что то не то делаю? Есть примеры нужного мне решения?

рони
16.03.2017, 22:53
можете поподробнее обьяснить может я что то не то делаю
1. сформировать строку
2 вставить строку.

var str ="";
for (key in inventary) {

str+= inventary[key]
}
$('#inv').html(str);

imult87
17.03.2017, 00:50
Спасибо что помогаете завтро попробую отпишусь, и плюсану:-)

рони
17.03.2017, 11:17
b.innerHTML = inventory[i];
:blink:

Alexandroppolus
17.03.2017, 11:41
если нужны свойства только из объекта (но не из прототипа), то надо проверять hasOwnProperty в цикле for in

рони
17.03.2017, 12:01
imult87,
для новых браузеров можно так
<div id='inv'></div>
<script>
var inventory = {};
inventory.coin1 = "<b>1 Рубль 1890 года</b>";
inventory.coin2 = "<b>2 Рубля 1890 года</b>";
inventory.coin3 = "<b>3 копейки 1890 года</b>";
inventory.coin5 = "<b>5 Рублей 1890 года</b>";
document.getElementById('inv').insertAdjacentHTML( 'beforeEnd',Object.values(inventory).join("<br>"));

</script>

imult87
17.03.2017, 13:37
рони, Все работает то что мне было нужно спасибо! Всем остальным так же спасибо за помощь!
http://i91.fastpic.ru/big/2017/0317/bf/853f85230b2c26801f602d01675373bf.jpg