function ftest (P1, P2) {
"use strict";
document.getElementById(String(P1)).display = String(P2);
}
document.getElementById(字符串(P1))
使用参数P1作为ObjectID;
display = 字符串(P2)
使用参数P2作为ObjectStyle属性;
这种在工作流程中传递值时避免混乱的方式:
onclick="ftest(objectname,objectproperty)"
代替
onclick =“ ftest('objectname','objectproperty')”
结果将是
对象是空值还是未知属性?
试图使HTML代码变得整洁的时候;
答案 0 :(得分:1)
你不能。唯一的方法是:
var objectname = "objectname";
然后
ftest(objectname)
会工作。但是如果你的目标是
通过html代码使内容整洁
然后删除内联事件侦听器,并执行以下操作:
// html
<button id="ftest" > ftest </ button>
// js
const on = (selector, event, handler) => document.querySelector(selector).addEventListener(event, handler);
on("#ftest", "click", () => ftest("objectname", "objectproperty"));
答案 1 :(得分:0)
可以,但是应该定义 objectproperty 。
类似的东西:
脚本中有一些内容(快速而肮脏的解决方案):
window.objectproperty = "none";
致电:
onclick="ftest(objectId, objectproperty)"
ftest:
function ftest (P1, P2) {
"use strict";
P1.style.display = P2;
}
答案 2 :(得分:0)
您必须创建对象,然后将其传递给函数。
看这个例子:
function ftest (obj) {
"use strict";
document.getElementById(obj.P1).style.display = obj.P2;
}
<h1 id='test'>I Am Block</h1>
<script>
var obj = {
P1 : 'test',
P2 : 'inline'
}
</script>
<button onclick="ftest(obj)">Test Me</button>