如何从动态元素 ID 中选择特定的元素 ID 并将其作为函数参数传递 - JavaScript?

how to select specific element id from dynamic element ids and pass it as function arguments - javascript?

提问人:Shahzad 提问时间:1/8/2023 最后编辑:Shahzad 更新时间:1/8/2023 访问量:47

问:

在函数上,其他变量完美地传递给另一个函数,但是当检查特定的输入字段值时,它给出了 .我可能错了onclickval()undefined

  1. 也许我没有正确获取输入文本字段 ID
  2. 没有使输入元素 id 动态的正确方法
  3. 元素 ID 未正确转义

这是我的代码

`function addVariable(data, index) {
  

        var datavar = {

            itemname : data[index].name,
            itemprice : data[index].price,
            itemtotal : data[index].price,
            itemcounter :  data[index].id,
          };

        addRow(datavar);  // creates table and display data + input field 

       }`


function addRow(datavar){

            var inputvalue= 'inputid'+ datavar.itemcounter;
            var btn ="<input type='button' onclick='addbill("+datavar.itemprice+","+datavar.itemcounter+",\""+inputvalue+"\");'  value='add item' />";

         var $table =$('#product_list tbody');
         var $row  =
                    $(
                      " <tr id='parent "+datavar.itemcounter + " '>" +
                      "<td id='price "+datavar.itemcounter + " '>" + datavar.itemname +    "</td>" +
                        "<td>" + datavar.itemprice +    "</td>" +
                        "<td >  <input type='text' id='"+inputvalue+" '   name='"+inputvalue+"'     min='1'  >     </td>" +

                        
                        "<td>" + btn + "</td>" +
                      
                        "</tr>"
                    );

                    $row.data("itemname",datavar.itemname);
                    $row.data("itemnprice",datavar.itemprice);
                    $row.data("itemntotal",datavar.itemtotal);
                    $row.data("itemntotal",datavar.itemcounter);
                    $row.data("quantity",inputy);

                  total += Number(datavar.itemprice );
                  $('#finaltotal').val(total);

                  $table.append($row);

                }

`function addbill(itemprice,itemid,inputvalue){

              var t =   document.getElementById(inputvalue).value; // gives undefined in console.log

             //  var t  = $('#' + inputvalue).val();  // same issue as above 

             //  var t  =  $('#product_list tbody').find('input').val(); // gets first row input value
}

`

直接检查时,因为它给出了动态 ID,例如 inputValue1 ,inputValue2,作为它们各自的循环值,但我无法在使用 或console.log(inputvalue)val()value

JavaScript HTML jQuery ajax DOM

评论

1赞 vbykovsky 1/8/2023
您的输入的 ID 是 ,但您试图通过 获取它。可能是个问题?'q'+ datavar.itemcounterquantity
0赞 Shahzad 1/8/2023
@vbykovsky很抱歉让您难以理解我的代码,我现在对其进行编辑以更好地理解

答: 暂无答案