我试图填充数组中的选择框。我需要将值与文本不同。
到目前为止,这段代码正常工作,因为我得到了正确的值:
var myArray = [];
$('#ctl00_ContentPlaceHolderBody_labelTider > div').each(function () {
myArray.push({
content: $(this).find('th').text(),
id: $(this).attr('id')
});
});
console.log(myArray);
但是,我无法通过谷歌找出或找到,如何通过这些来迭代这些并获得价值。
for(arr = 0; arr < myArray.length; arr++) {
jQuery('<option/>', {
value: myArray[arr],
text: myArray[arr]
}).appendTo('.selectLocation');
}
这导致[object Object]
任何能够指导我正确方向的人都会非常感激。
答案 0 :(得分:0)
问题是因为您将整个对象设置为属性值,而不是该对象的相关属性。试试这个:
for(arr = 0; arr < myArray.length; arr++){
jQuery('<option/>', {
value: myArray[arr].content,
text: myArray[arr].id
}).appendTo('.selectLocation');
}
请注意,您可以使用map()
创建包含HTML字符串的数组,然后在追加时将join()
全部放在一起,从而使代码更加简洁:
var html = $('#ctl00_ContentPlaceHolderBody_labelTider > div').map(function() {
return `<option value="${this.id}">${$(this).find('th').text()}</option>`;
}).get();
$('.selectLocation').append(html.join(''));
答案 1 :(得分:0)
使用
价值value: myArray[arr].content
和
value: myArray[arr].id
,因为您的myArray
是对象数组。
for(arr = 0; arr < myArray.length; arr++){
jQuery('<option/>', {
value: myArray[arr].content,
text: myArray[arr].id
}).appendTo('.selectLocation');
}