我有许多采用以下格式的字段名称:'Field1_ro'、'Field2_ro'、'Field3_ro'...
有没有一种方法可以将所有包含“ro”的字段设置为只读,而不是每次都使用以下行?
document.getElementById('Field1_ro').readOnly = true;
document.getElementById('Field2_ro').readOnly = true;
document.getElementById('Field3_ro').readOnly = true;
您可以在 id
属性、[id$=_ro]
和 querySelectorAll
上使用 attribute-ends-with selector,并在结果上循环:
document.querySelectorAll("[id$=_ro]").forEach(function(element) {
element.readOnly = true;
});
也就是说,给他们一个共同的类并使用类选择器会更典型。或者,理想情况下,在定义时而不是之后添加 readonly
属性。 :-)
注意:querySelectorAll
返回的 NodeList
最近才得到 forEach
,但是你可以很容易地在旧浏览器上填充它,参见 my answer here这样做的一个例子。