我正在尝试使用javascript设置DOM元素的默认值。
首先,我需要检查字段值是否为空。如果是,则将值更改为0。
如果不是,则什么也不做。
文字栏位:
<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;">
字段数始终在变化。
我正在尝试做这样的事情
var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value;
if(feature_value !== ""){
change the default values
}
而且,据我了解,必须使用一些循环,但是我不知道如何实现此循环。谁能帮我?
最佳答案
正则表达式不匹配。
最好的解决方案是使用通用的className并遍历集合。
var elems = document.getElementsByClassName("commonClass");
另一个选项是使用带有“开头为”匹配项的querySelectorAll
var elems = document.querySelectorAll("[name^='feature_value_']");
和循环
var i;
for (i=0; i<elems.length; i++) {
if (!elems[i].value.length) { //you might want to trim this
elems[i].value = "0";
}
}
参考文献:
MDN getElementsByClassName()
MDN querySelectorAll()
编辑,添加可运行的代码段:
var elems = document.querySelectorAll("[name^='feature_value_']");
var i;
for (i=0; i<elems.length; i++) {
if (!elems[i].value.length) { //you might want to trim this
elems[i].value = "0";
}
}
<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;">