我想通過我的object
中的XML數據構建<select>
。我想使用原型模式,我不得不承認我對模式很陌生。下面是我有:
HTML樣本:
<select id="ddFullName" name="Full_Name" ></select>
XML示例:
<names>
<nameDetails name="Name 01" phone="555-867-5309" email="[email protected]" />
<nameDetails name="Name 02" phone="555-867-5309" email="[email protected]" />
<nameDetails name="Name 03" phone="555-867-5309" email="[email protected]" />
<nameDetails name="Name 04" phone="555-867-5309" email="[email protected]" />
<nameDetails name="Name 05" phone="555-867-5309" email="[email protected]" />
</names>
的JavaScript樣本:
function buildNameDropdown(data, elem) {
this.data = data;
this.name = $(data).find('nameDetails');
this.elem = elem;
buildNameDropdown.prototype.init = function()
{
//Working as desired
$(this.elem).append($('<option value=""> ----- Select a Name ----- </option>'));
//Not working
$(this.name).each(function()
{
//$(this) = the object, not 'this.name'
$(this.elem).append($('<option value="' + $(this).attr('name') + '">' + $(this).attr('name') + '</option>'));
});
$(this.elem).combobox(); // from jQuery UI combobox extension
};
};
var myNameDropdown = new buildNameDropdown(data, "#ddFullName");
myNameDropdown.init();
我想如何引用'this'作爲每個函數的選擇器?
你或許應該是「初始化」函數定義移到在構造函數之外。 – Pointy 2013-04-25 19:48:31
此外還有很多重複的問題 - 關鍵是在'.each()'之外聲明的另一個變量中複製'this',然後使用該變量而不是'this'。 – Pointy 2013-04-25 19:50:23