Jquery返回b.fn.b.init
我必须选择多个元素,它们都有class =“org-box”。 在那个盒子里面有一个我想要捕获href的链接。 所以我这样做
$("a.org-box").click(function (e) { e.preventDefault(); var link = $(e).html(); $('.col-right').prepend("" + link +""); })
我总是得到的是null,我尝试过其他选择器
var link = $(ea).attr(“href”)。html();
运气一样。
我检查了我从那个选择$("a.org-box")
得到的东西,我得到了这个 – > b.fn.b.init [102]
如果我这样做$("a.org-box:first").attr("href");
我得到正确的href,但是当我做$("a.org-box").attr("href");
我刚拿到第一个。
我做得不好? 如何选择所有a.org-box并在点击时捕获href?
Click to prepend Google
–
$("a.org-box").on('click', function(e) { e.preventDefault(); $('.col-right').prepend("" + e.target.href +""); //http://google.com });
小提琴
你可以使用:
$("a.org-box").click(function (e) { $('.col-right').prepend('' + $(this).attr('href') + ''); e.preventDefault(); });
this
被设置为e.target
, e.target
是事件的目标 (被点击的项目)。 您可以使用$(this).attr('href')
, $(this).prop('href')
, this.href
或使用e.target
任何相同变体。
我不知道你是否需要链接的内部文本( .text()
)或href
属性,所以我假设后者。
jQuery选择器返回所有匹配的元素,所以正在发生的是你从选择器返回这些元素的jQuery集合,事件数据不是触发事件正确实现的元素:
$(a.org-box).click(function(){ var link = $(this).html(); $('.col-right').prepend("" + link +""); });
你使用$(this)
因为jQuery正在遍历集合,所以就像你使用.each()
, this
对象包含你的元素。