首页 新闻 搜索 专区 学院

动态生成DOM元素无法传递对象?

0
悬赏园豆:10 [已解决问题] 解决于 2012-09-25 00:12

function load(obj) {
  alert(this.innerText());
}
$("input[type=button]:first").click(function() {
  var link = $("<a href='#' onclick='load(this)'>百度</a>"); //返回JQuery对象
  $("div:first").append(link);
});

这样写为什么点击生成的超链接时提示无法找到该元素呢?

竹墨轩的主页 竹墨轩 | 初学一级 | 园豆:58
提问于:2012-09-21 22:35
< >
分享
最佳答案
0

load函数中的this===window  window对象既没有innerText方法 ,也没有这个名称的属性

收获园豆:10
chenping2008 | 大侠五级 |园豆:9836 | 2012-09-22 13:01

this指的不是当前创建链接的Link对象么?

竹墨轩 | 园豆:58 (初学一级) | 2012-09-22 18:20

@竹墨轩: 你可以写个JS的代码在chrome开发者工具中的console下运行一下,知道了,你的那个obj参数指向的是你的Link,但是this指向window

chenping2008 | 园豆:9836 (大侠五级) | 2012-09-22 20:20

@chenping2008: 这样的谢谢啊

竹墨轩 | 园豆:58 (初学一级) | 2012-09-25 00:11
其他回答(1)
0

function load(obj) {
  alert(obj.innerText);
}

向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-21 23:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册