Javascript 如何从动态表中获取元素ID的值
我这里的问题是如何从动态输入文本中获取元素id值,其中包含[$i]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>
完整代码:
<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
如果要获取所有创建字段的值,需要使用idpriceX
循环所有输入,其中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
如果要获取所有创建字段的值,需要使用idpriceX
循环所有输入,其中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”开头的所有元素。是的,我希望从当前选定行动态获取元素您是说当有人更改数量时?或者选择是如何工作的?是的,当有人更改当前行中的数量时我编辑了答案,您可以尝试一下吗?是的,我希望从当前选定行动态获取元素您的意思是当有人更改数量时?或者选择是如何工作的?是的,当有人更改当前行中的数量时,我编辑了答案,你能试试吗?