[英]How to get element by name with $key
的PHP
//Here is my html for qty
<p>Qty : <input type="number" value="" name="qty<?php echo $key ?> onChange="findTotal()"/>
JS功能
function findTotal() {
var arr = document.getElementsByName('qty');
...
document.getElementById('result').value = decimalPlaces(tot, 2);
}
我的数量名称需要用于帖子数组的键。 如何在js函数中获取名称以计算数量?
您可以使用
document.querySelector("input['name^='qty']").value
如果您没有jQuery。
这将选择name
属性以“ qty”开头的input
。 如果您有多个符合条件的输入,则可以使用进行选择
document.querySelectorAll("input[name^='qty']")
这将返回一个NodeList
。 您可以在此处了解更多信息。
你可以做这样的事情
var myVar = document.getElementsByTagName("somename");
//do something else
如果您使用的是jQuery
value = $( "input[name^='qtd']" ).val();
//it will pick the input wich name starts with 'qtd'
在纯DOM中,可以使用getElementsByTagName来获取所有输入元素,并循环遍历所得数组。 名称以“ qty”开头的元素将被推送到另一个数组:
var eles = [];
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].name.indexOf('qty') == 0) {
eles.push(inputs[i]);
}
}
不要通过name属性的值查询元素。 我不确定该键的目的是什么,以及为什么在findTotal方法中需要它,但这是一个示例:
<p>Qty : <input type="number" value="" name="qtyMyKey" onChange="findTotal(event)" /></p>
<script>
function findTotal(e) {
var inputEl = e.target,
inputName = inputEl.getAttribute('name'),
myKey;
if (typeof inputName === 'string') {
myKey = inputName.replace('qty', '');
}
console.log(myKey);
//var arr = document.getElementsByName('qty');
//document.getElementById('result').value = decimalPlaces(inputEl.value(), 2);
}
</script>
这是jsFiddle演示 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.