这是一个javascript函数
<script>
function func1(var g){
alert(document.getElementsByTagName('p')[0].innerHTML);
}
</script>
如何将值0从函数调用传递给上面的函数定义。
<p onmouseover="func1(0)";>First para</p>
答案 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);
}
但也许最好的方法是使用事件委派,这样你就不会将监听器添加到所有元素中。向父元素添加一个事件监听器,并在它们冒出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);
}
}