如何定位页面上的所有输入?
这个问题在这里已经有了答案:
使用querySelectorAll来选择所有匹配选择器的元素。 选择所有输入类型的number
元素。
var allNumberInputs = document.querySelectorAll('input[type="number"]');
更新小提琴
然后,您需要更新绑定元素事件的代码。 遍历所有匹配的元素并分别绑定每个元素上的事件。
// Select your input element.
var numInput = document.querySelectorAll('input[type="number"]');
for (var i = 0, len = numInput.length; i < len; i++) {
// Listen for input event on numInput.
numInput[i].addEventListener('input', function() {
// Let's match only digits.
var num = this.value.match(/^d+$/);
if (num === null) {
// If we have no match, value will be empty.
this.value = "";
}
}, false);
}
<label for="first">First</label>
<br>
<input type="number" min="0" />
<br>
<br>
<label for="Second">Second</label>
<br>
<input type="number" min="0" />
使用document.querySelectorAll()
而不是document.querySelector()
。
querySelectorAll()
方法返回所有匹配的元素,而querySelector()
方法只返回第一个,这就是你所得到的。
querySelector
只返回一个元素:第一个匹配元素。
相反,您可以使用querySelectorAll
。 然后将事件监听器附加到返回的元素。
如果您还想筛选其类型的输入,请使用以下命令:
var numInputs = document.querySelectorAll('input[type=number]');
然后你可以像这样添加事件监听器:
for (var i = 0; i < numInputs .length; i++) {
numInputs[i].addEventListener("click", yourFunction, false);
}
现在,由于您使用的是jQuery,因此可以利用这一点:
$('body').on('input', 'input[type=number]', yourFunction);
这就是你需要的。
链接地址: http://www.djcxy.com/p/83441.html