把for循环里面的var 改为 let
this指代的是本窗体的实例,本窗体里面有html
你的objp获取的是p标签
p标签里哪来的html
用objp[0].innerHTML是可以打印出来的,但是按照你这种写法循环加onclick里面使用objp[i].innerHTML是不可以的,因为i都是同一个值3,如果想要实现objp[i].innerHTML这种
script里面换成这样就可以了
var objp;
window.onload=function(){
objp=document.getElementsByTagName("p");
for(var i=0;i<objp.length;i++) {
(function (i) { //这个是function里i,即function的形参,也可以换成j,换成什么变量名都无所谓
objp[i].onclick = function () {
console.log(i);
console.log(objp[i].innerHTML)
alert(objp[i].innerHTML);
}
})(i);//这是循环中的i,被作为参数传入
}
}