Я хочу показать список различных питомцев на своей странице.Каждый питомец будет связан с объектом javascript, представляющим этого питомца.Это код для моего Pet
класса:
function Pet()
{
var id, name, var color, var photo;
this.getHtml = function()
{
// Should return the html of a div representing the pet.
return html;
}
this.buy = function()
{
//Find out whether pet is for sale, show a buy form, etc
}
// Snip
}
Используя этот объект, я хочу сделать следующее:
var cat = new Pet();
cat.id = 1;
cat.name = 'Cat';
cat.color = 'Black';
cat.photo = 'http://example.com/cat.jpg';
var dog = new Pet();
dog.id = 2;
dog.name = 'Dog';
dog.color = 'White';
dog.photo = 'http://example.com/dog400.jpg';
$(document).append(cat.getHtml());
$(document).append(dog.getHtml());
Запустив этот код, я хочу получить следующеедва div, которые будут добавлены на мою страницу:
<div id="pet_1">
Pet name: Cat <br>
Color: Black <br>
<img src='http://example.com/cat.jpg' alt='Cat' /><br>
<input type='button' value='Buy This Pet' onclick = 'cat.Buy()';/>
</div>
<div id="pet_2">
Pet name: Dog <br>
Color: White <br>
<img src='http://example.com/dog400.jpg' alt='Dog' /><br>
<input type='button' value='Buy This Pet' onclick = 'dog.Buy()';/>
</div>
У меня есть следующие вопросы:
1) Как лучше написать функцию pet.getHtml()
, чтобы она выглядела так:выход?Я действительно предпочел бы не хранить html внутри строки в моем javascript, скорее, я бы предпочел, чтобы div шаблона мог храниться где-нибудь вне javascript, и каждый раз, когда html этого div извлекается, вставляется необходимая информация и htmlвозвращается код нового div.
2) Кроме того, определенные элементы в новом div (такие как кнопка покупки) должны быть связаны с объектом, который их создал, например кнопки «Купить сейчас» наПри нажатии кнопки cat / dog div вызывают методы cat.buy();
и dog.buy();
.
Как это можно сделать?