将参数传递给javascript函数

时间:2016-04-21 13:05:38

标签: javascript html

这是一个javascript函数

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

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

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

2 个答案:

答案 0 :(得分:2)

将其更改为

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

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

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

答案 1 :(得分:1)

由于您在鼠标悬停时使用[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);
}

DEMO

但也许最好的方法是使用事件委派,这样你就不会将监听器添加到所有元素中。向父元素添加一个事件监听器,并在它们冒出DOM时从catch中捕获事件:

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);
  }
}

DEMO