【问题标题】:"reuse" a JavaScript code for multiple buttons“重用”多个按钮的 JavaScript 代码
【发布时间】:2019-10-09 09:46:38
【问题描述】:

我对 JavaScript 还很陌生, 我一直在研究一个简单的 if else 脚本来更改 at 按钮的颜色,具体取决于我从 plc (Siemens S7-1200) 获得的变量的状态。

脚本运行良好,按钮的颜色正在改变。 但是我想在 10 个按钮上运行这个脚本。

是否可以“重用”脚本,这样我就不必复制脚本并更改每个按钮的变量

T

<script>
var tag = ':="web_DB".outtag1:'
var button = "button1"
window.onload = function() {
if (tag == 1) {
    document.getElementById(button).style.backgroundColor = 'green';
} else{
    document.getElementById(button).style.backgroundColor = 'red';
}

}
    </script>

    <form>
<input type="submit" id="button1" value="button">
<input type="hidden" name='"web_DB".intag1' value ="1">
</form>

【问题讨论】:

  • 这个不行,你能提供minimal reproducible example它的工作原理吗
  • 我假设每个按钮的标签都不同?你在哪里建立从按钮到特定标签的连接?
  • 站点在 PLC 上运行,因此标签名称是 PLC 中的标签,无需进一步连接

标签: javascript getelementbyid plc s7-1200


【解决方案1】:

很难确定,因为您还没有发布所有代码,而且您发布的内容实际上并没有工作,但我认为您正在寻找类似的东西。

const tags = [
    ':="web_DB".outtag1:',
    ':="web_DB".outtag2:',
    //...
    ':="web_DB".outtag10:'
];
window.onload = function() {
    for (let i = 0; i <= 9; i++) {
        const color = (tags[i] == 1) ? 'green' : 'red';
        document.getElementById('button' + (i+1)).style.backgroundColor = color;
    }
}

【讨论】:

  • 感谢它可以工作,但这需要在 PLC 中进行大量额外编程,因为一个按钮有一个像“other_DB”.sometage 这样的标签,另一个按钮有一个像“some_DB”这样的标签。标签'等
  • 好的,我已经更新了手动输入标签的答案。也许这对你有用?
  • 正是我想要的,完美运行。非常感谢!
猜你喜欢
  • 2017-11-20
  • 1970-01-01
  • 2014-10-21
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多