2016-12-04 51 views
0

我一直试图让这个“本”的工作,将其绑定到一个/任何HTML元素的功能被应用到。我试图保持它的通用性,以便将相同的功能应用于多个HTML元素。绑定。这对一个HTML元素

注:

我不想惹的ID,也不类和这样的,因为我想保持功能尽可能具有普遍性。

<!doctype html> 
<html> 
<body> 

<input type="button" value="Old" onClick="Change(this);"> 

<script type="text/javascript"> 
function Change(){ 
    this.innerHTML = "New"; 
}; 
</script> 

</body> 
</html> 
+0

您输入的标签在您提供的示例中缺少闭角尖括号。 – JosephGarrone

+0

对不起,我刚刚做了一个文件的快速复制,我显然没有赶上右括号。但它确实存在,所以它不能解决问题。 – Unknown96

+0

您将'this'作为参数传递给'Change' ...它不会绑定任何东西,它传递一个参数..'function Change(element){element.innerHTML =“New”; ''会工作 –

回答

2

innerHTML在这种情况下不起作用。因为这是一个输入,请尝试使用value代替。

var input = document.querySelector('input'); 
 

 
input.addEventListener('click', Change); 
 
    
 
function Change(){ 
 
    this.value = "New"; 
 
    this.removeEventListener('click', Change); 
 
}
<input type="button" value="Old" />

+0

很高兴听到。您介意将此标记为正确答案吗? –

0

的问题是,当页面命中input没有定义Change功能。请尝试以下操作:

<!doctype html> 
<html> 
<body> 

<script type="text/javascript"> 
function Change(){ 
    this.value = "New"; 
}; 
</script> 

<input type="button" value="Old" onClick="Change.call(this);"> 

</body> 
</html> 

请注意,我已经改变了inputonClickChange.call(this)。并且该脚本在控制之前加载。

你可以看到一个working fiddle here.需要注意的是JavaScript的设置是(打在JavaScript部分COG)配置,使得脚本在头加载。

+0

请问downvoter请解释为什么这是downvoted?这是有效的工作答案。 – JosephGarrone