我正在使用Framework7来构建移动应用。使用popup和request功能,我可以动态构建带有JSON数据的html表,如下所示:
//Do something when popup is opened
$$(document).on('popup:opened', '.popup-airconSearch', function (e) {
//Show preloader
app.preloader.show();
//Request json data from URL
app.request.json('my-URL', function (data) {
var tableHtml = '';
for(var i = 0; i < data.length; i+=1){
tableHtml+= '<tr><td class="numeric-only">' +data[i].brand+ '</td> <td class="numeric- only">' +data[i].model+ '</td></tr>';
}
//Add rows to HTML table
$$('.data-table #airconDatabase').html(tableHtml);
app.preloader.hide();
})
})
JSON URL还包含一个ID字段,当我单击表行时,我试图记录每个条目的ID。我已使用以下命令更新了上述功能:
$$('.data-table #airconDatabase tr').on('click', e => {
var id = data[i].regnumber;
console.log (id);
})
但是,控制台记录的ID定义不足。如果我将其更改为
var id = data[0].regnumber;
然后,无论单击哪个表行,都会记录第一个JSON条目regnumber字段以进行控制台。如果我将其更改为
var id = data[1].regnumber;
然后记录第二个JSON条目regnumber字段,依此类推。
我要去哪里错了?
答案 0 :(得分:0)
我的解决方案:
首先使用来自JSON数据的行ID构建动态HTML表:
public class RecyclerViewHolder extends RecyclerView.ViewHolder {
public ItemHolder(@NonNull final View recyclerView) {
super(recyclerView)
recyclerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = getAdapterPosition();
}
});
}
}
然后在单击表行时获取行ID:
tableHtml+= '<tr id="' +data[i].am_5_regnumber+ '"><td class..
除了上述内容外,我还必须向HTML表中添加一个ID,而不仅仅是表主体。