Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从动态表中获取元素ID的值_Javascript - Fatal编程技术网

Javascript 如何从动态表中获取元素ID的值

Javascript 如何从动态表中获取元素ID的值,javascript,Javascript,我这里的问题是如何从动态输入文本中获取元素id值,其中包含[$i] 完整代码: <html> <body> <p id="demo">Create Invoice</p> <table class="table table-bordered table-responsive" id="crud_table"> <tr>

我这里的问题是如何从动态输入文本中获取元素id值,其中包含[$i]

完整代码:

<html>
   <body>
      <p id="demo">Create Invoice</p>
      <table class="table table-bordered table-responsive" id="crud_table">
         <tr>
            <th class="" >#</th>
            <th class="" >Product</th>
            <th class="" >Item Price</th>
            <th class="" >Quantity</th>
            <th class="" >inStore</th>
            <th class="" >New Quantity</th>
            <th class="" >Total</th>
         </tr>
         <tbody>
            <?php for ($i = 1; $i <= 2; $i++) { 
           echo" 
            <tr>
               <td align='center'><?php echo $i;?></td>
               <td><input type='text' class='form-control ' value=''   id='itemname[$i]' /></td>
               <td><input type='text' class='form-control num-only '     id='price[$i]' /></td>
               <td><input type='number' class='form-control num-only'  maxlength='5' id='quantity[$i]' onchange='kofta(this)'/></td>
               <td><input type='text' class='form-control num-only'   maxlength='50' id='inStore[$i]'  onchange='kofta()'/></td>
               <td><input type='text' class='form-control num-only'   maxlength='10' id='newq[$i] ' onchange='kofta()'/></td>
               <td><input type='text' class='form-control num-only'   maxlength='50' id='total[$i]' readonly /></td>
            </tr> ";
             } ?>
         </tbody>
      </table>
      <input type="text" id="total" readonly value="0">
       
      <script>
         function kofta(){
         var rate= document.getElementById("price").value;
         var q1=document.getElementById("quantity").value
         var total= rate * q1;
         document.getElementById("total").value=total;
         }
         
      </script>
       


创建发票

# 产品 项目价格 量 内在 新数量 全部的
通过使用Javascript添加一个对象数组使其变得简单,使用相应的键将值存储在对象中,现在您可以使用此对象创建表,并轻松定位此对象中的任何项。对于ex:obj[0].itemname.

使用Javascript添加一个对象数组,将值存储在对象中,并使用相应的键,这样就可以使用此对象创建表,并轻松定位此对象中的任何项。例如:obj[0].itemname.

我的假设是,php会将
$1
的内容附加到您放在后面的文本中。因此,如果
$1
包含1,如循环所示,输入的id将是
price1
。要获取该字段的值,需要使用
document.getElementById(“price1”).value

如果要获取所有创建字段的值,需要使用id
priceX
循环所有输入,其中X是数字。如果在浏览器中打开该页并检查元素,则可以检查ID附加了哪些数字

编辑1:

您可以尝试使用
previousSibling
属性

function kofta(quantityField) {
    let rate = quantityField.previousSibling.value,
        quantity = quantityField.value;
}

我的假设是php将
$1
的内容附加到您放在后面的文本中。因此,如果
$1
包含1,如循环所示,输入的id将是
price1
。要获取该字段的值,需要使用
document.getElementById(“price1”).value

如果要获取所有创建字段的值,需要使用id
priceX
循环所有输入,其中X是数字。如果在浏览器中打开该页并检查元素,则可以检查ID附加了哪些数字

编辑1:

您可以尝试使用
previousSibling
属性

function kofta(quantityField) {
    let rate = quantityField.previousSibling.value,
        quantity = quantityField.value;
}

为什么不使用
数据属性

比如:

let totalinput=document.getElementById(“total”);
函数kofta(){
var率=document.getElementById(“价格”).value;
var q1=document.getElementById(“数量”).value
风险价值总额=比率*q1;
totalinput.value=总计;
}
让inputs=document.querySelectorAll('input[data number]”);
inputs.forEach(输入=>{
input.addEventListener('change',SumAll);
});
函数SumAll(){
设计数器=0;
inputs.forEach(输入=>{
计数器+=+输入值;
});
totalinput.value=计数器;
}

创建发票

# 产品 项目价格 量 内在 新数量 全部的 1. 2.
为什么不使用
数据属性

比如:

let totalinput=document.getElementById(“total”);
函数kofta(){
var率=document.getElementById(“价格”).value;
var q1=document.getElementById(“数量”).value
风险价值总额=比率*q1;
totalinput.value=总计;
}
让inputs=document.querySelectorAll('input[data number]”);
inputs.forEach(输入=>{
input.addEventListener('change',SumAll);
});
函数SumAll(){
设计数器=0;
inputs.forEach(输入=>{
计数器+=+输入值;
});
totalinput.value=计数器;
}

创建发票

# 产品 项目价格 量 内在 新数量 全部的 1. 2.
我不太清楚你的意思,也许这会有帮助

var prices = document.querySelectorAll('[id^="price"]');

这将获取id以“price”开头的所有元素。

我不完全确定您的意思,也许这会有所帮助

var prices = document.querySelectorAll('[id^="price"]');

这将获取id以“price”开头的所有元素。

是的,我希望从当前选定行动态获取元素您是说当有人更改数量时?或者选择是如何工作的?是的,当有人更改当前行中的数量时我编辑了答案,您可以尝试一下吗?是的,我希望从当前选定行动态获取元素您的意思是当有人更改数量时?或者选择是如何工作的?是的,当有人更改当前行中的数量时,我编辑了答案,你能试试吗?