以特定字符串开头的ID循环

时间:2018-08-29 07:07:22

标签: javascript for-loop foreach

对于下面的jQuery代码,我需要一个纯JavaScript解决方案:

$("#Lat").on("keypress keyup blur",function (event) {
    $(this).val($(this).val().replace(/[^0-9\.]/g,''));
           if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
               event.preventDefault();
           }
       });

$("#Lng").on("keypress keyup blur",function (event) {
    $(this).val($(this).val().replace(/[^0-9\.]/g,''));
           if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
               event.preventDefault();
           }
       });

2 个答案:

答案 0 :(得分:0)

querySelectorAll将获得与选择器匹配的所有NodeList的{​​{1}},然后您可以对其进行一次forEach访问。以下是等效的JavaScript。

Nodes

答案 1 :(得分:0)

您可以使用document.querySelectorAll()for循环来完成此操作,如下所示:

var nodes = document.querySelectorAll('[id^=name_]');

for(var i = 0; i < nodes.length; i++)
{
    console.log(nodes[i].innerHTML);
}
<div id="name_a">aaa</div>
<div id="name_b">bbb</div>

请注意::使用nodes.forEach,您将获得成功

  

“未捕获的TypeError:nodes.forEach不是函数”

因为nodesNodeList而不是Array

但是,如果要使用Array.forEach(),则必须将NodeList转换为Array,如以下示例所示:

var nodes = document.querySelectorAll('[id^=name_]');

[].forEach.call(nodes, function(elm)
{
    console.log(elm.innerHTML);
});
<div id="name_a">aaa</div>
<div id="name_b">bbb</div>

请参阅文档: