单击表行时记录JSON字段

时间:2019-09-17 09:32:02

标签: javascript ajax html-framework-7

我正在使用Framework7来构建移动应用。使用popuprequest功能,我可以动态构建带有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字段,依此类推。

我要去哪里错了?

1 个答案:

答案 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,而不仅仅是表主体。