【问题标题】:How to call functions with variable parameters如何调用带有可变参数的函数
【发布时间】:2016-03-31 06:10:45
【问题描述】:

我正在尝试在文本框中输入文本,当我单击按钮时,它会提醒我文本。我似乎无法让变量在函数中工作。我不确定“var i = document.getElementById('apple').value;”是否是正确的。

document.querySelector("input[type=button]").addEventListener("click", function(event){

alert(i);});

<form>
Enter:<br>
<input type="text" name="inputbox" id="apple">
<input type="button" name="alert" value="alert">
</form>

<script>
var i = document.getElementById('apple').value;

document.querySelector("input[type=button]")
     .addEventListener("click",function(event){

alert(i);});
</script>

演示:http://codepen.io/michaelaharvey/pen/QyKvme

我也试过了:

var i = form.inputbox.value; 

但这也没用

【问题讨论】:

  • 您必须将获取值的行放入事件处理程序中以进行点击。现在它只获取页面加载的值,而不是每次点击

标签: javascript


【解决方案1】:
document.querySelector("input[type=button]")
.addEventListener("click",function(event){
  var i = document.getElementById('apple').value;
  alert(i);
});

您需要在点击时查询该值

【讨论】:

    【解决方案2】:

    问题在于,当 DOM 加载时,您将元素的值存储在变量中。因此,当click 事件被触发时,value 属性是一个空字符串(或者在 DOM 加载时的任何值)。

    在触发 click 事件时检索值:

    Updated Example

    document.querySelector("input[type=button]").addEventListener("click", function(event) {
      var value = document.getElementById('apple').value
      alert(value);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 2023-03-03
      • 1970-01-01
      • 2011-01-07
      • 2021-08-31
      • 2013-11-10
      相关资源
      最近更新 更多