Javascript - 根据 ID 中包含的短语选择元素和设置属性

标签 javascript

<分区>

我有许多采用以下格式的字段名称:'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这样做的一个例子。

关于Javascript - 根据 ID 中包含的短语选择元素和设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524138/

相关文章:

javascript - 从视频将图像绘制到 Canvas (没有错误,但未绘制图像)

javascript - 检查页面的页面可见性和页面焦点

javascript - JavaScript程序中的"Unexpected end of input"

javascript - React Higher Order Component - 从包装器组件调用包装组件中的函数

javascript - Array(len) 初始化程序中的未定义值

javascript - 如何在 tsconfig.json 中排除以 '.spec.ts' 结尾的文件

javascript - jQuery 一项一项地显示列表项的最佳方式

javascript - 显示数据文件属性中的复选框值

javascript - 在非移动优化站点的整个视口(viewport)中显示移动设备上的 Mobiscroll 弹出窗口?

javascript - 如何防止在 EJS 中多次打印?