[英]How can I use jQuery to access an element that's stored in an array?
我正在構建HTML表單,對於其中的一部分,需要將div內的一簇HTML輸入字段推入數組。 div和所有字段在創建時都會獲得唯一的ID /名稱-特別是選擇之一就是輸入。
所有這些工作都很好-創建了字段並將其推送到數組,正確設置了所有內容,等等,但是我似乎無法訪問jQuery更改函數的select元素,該元素應該稍后在字段已創建。 我測試了一個內聯Javascript“ onchange = myFunction()”類型的東西,它能夠訪問select元素-我知道為什么它起作用,但是這不是一個可以接受的解決方案...我真的需要使用$ (“ #id”)。change函數。
如何使用jQuery訪問存儲在數組中的選擇元素?
this['input_array' + siteName] = [];
for (y = 0; y < numberFound; y++){
this['input_array' + siteName].push('<div id="'+routeValue+''+siteName+'Details'+y+'" class="details">Species: <select id="'+siteName+'Species'+y+'" name="species['+y+']" data-speciesNumber="'+y+'">'+speciesList+'</select></div>);
$("#"+siteName+"Species"+y+"").change(function(){
species = this.value;
speciesNumber = this.getAttribute("data-speciesNumber");
siteSpeciesNumber = displayName + "" + species + "" + speciesNumber;
document.getElementById(""+siteName+"compileField"+speciesNumber+"").value = siteSpeciesNumber;
});
};
$("#"+routeValue+""+siteName+"Details").append(this['input_array' + siteName]);
問題不在於選擇位於數組內部,而是它尚未附加到DOM。
嘗試將事件處理程序附加為元素的一部分。 現在,當jQuery將元素插入文檔中時,將注冊事件綁定。
function $newSelect(y) {
return $('<select />', {
html: speciesList,
id: siteName + 'Species' + y,
name: 'species[' + y + ']',
data: {
speciesNumber: y
},
on: {
change: function(){
species = this.value;
speciesNumber = this.getAttribute("data-speciesNumber");
siteSpeciesNumber = displayName + "" + species + "" + speciesNumber;
document.getElementById(""+siteName+"compileField"+speciesNumber+"").value = siteSpeciesNumber;
}
}
}
}
function $newField (idNum) {
return $("<div id="'+routeValue+''+siteName+'Details'+y+'" class="details"></div>", {
html: $newSelect(idNum)
});
}
this['input_array' + siteName] = [];
for (y = 0; y < numberFound; y++){
this['input_array' + siteName].push($newField(y));
};
$("#"+routeValue+""+siteName+"Details").append(this['input_array' + siteName]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.