将参数传递给 JavaScript 函数

passing arguments to a javascript function

本文关键字:函数 JavaScript 参数传递      更新时间:2023-09-26

这是一个javascript函数

<script>
function func1(var g){
alert(document.getElementsByTagName('p')[0].innerHTML);
}
</script>

如何将值 0 从函数调用传递到上面的函数定义。

<p onmouseover="func1(0)";>First para</p>

将其更改为

<script>
function func1(g){
  alert(document.getElementsByTagName('p')[0].innerHTML);
}
</script>

您需要查看控制台日志以了解弹出的相关错误。

在这种情况下,您在函数参数中声明变量是不允许的,您可以在此处了解有关function的更多信息。

由于当您将鼠标悬停在第一段上时,您使用[0]来定位第一段,因此您的函数应该是;

function func1(g){
  alert(document.getElementsByTagName('p')[g].innerHTML);
}

一种更规范的 JS 方法是使用 JavaScript 将事件侦听器附加到您的元素,而不是内联代码:

var paras = document.getElementsByTagName('p');
[].slice.call(paras).forEach(function (el, i) {
  el.addEventListener('mouseover', func1.bind(func1, i), false);
});
function func1(g){
  console.log(paras[g].innerHTML);
}

演示

但也许最好的方法是使用事件委托,这样您就不会向所有元素添加侦听器。将事件侦听器添加到父元素,并在 DOM 冒泡时从 para 中捕获事件:

var div = document.getElementById('paras');
div.addEventListener('mouseover', func1, false);
function func1(e) {
  var el = e.target;
  if (el.nodeType === 1 && el.nodeName === 'P') {
    console.log(el.innerHTML);
  }
}

演示