我正处于开始阶段,我想知道一些事情..有没有办法设置这样的变量(或类似方式)?
<body>
<button id="button1" onclick="change(this.something);"> click me </button>
<button id="button2" onclick="change(this.lorem);"> or this one </button>
<div id="target"> change this content </div>
<script>
function change(variable)
{
document.getElementById("target").innerHTML = variable;
}
</script>
</body>
或类似的东西
<body>
<button id="button1" onclick="change(this.value(v1));"> click me </button>
<button id="button2" onclick="change(this.value(v2));"> or this one</button>
<div id="target"> change this content </div>
<script>
function change(value)
{
var v1 = "something";
var v2 = "lorem";
document.getElementById("target").innerHTML = variable;
}
</script>
当然两者都不起作用..只是不知道如何找到答案。
答案 0 :(得分:4)
也许你的意思是将字符串文字传递给函数,即change('literal text')
:
function change(variable) {
document.getElementById("target").innerHTML = variable;
}
<button id="button1" onclick="change('something');"> click me </button>
<button id="button2" onclick="change('lorem');"> or this one </button>
<div id="target"> change this content </div>
答案 1 :(得分:0)
如果您打算将div的内容设置为something
或lorem
,那么您应该使用字符串文字传递它们,而不是尝试访问此属性。
<button id="button1" onclick="change('something');"> click me </button>
<button id="button2" onclick="change('lorem');"> or this one </button>
使用字符串文字会将包含指定值的String
传递给change
函数,而使用this.something
是property accessor会尝试获取{{3}}的值something
对象上的{1}}属性。
在第二个示例中,您无法使用this
处理程序中的v1
和v2
,因为这些变量的作用域位于onclick
函数内且无法访问来自外面。