结构如下:
div
h1
a
p
.more-info
当我点击.more-info div时,我需要模拟点击' a'
$(".more-info").click(function() {
$(this).parent().find('h1').find('a').get(0).trigger('click');
})
这会出现以下错误:
$(...).parent(...).find(...).find(...).get(...).trigger is not a function
的输出
console.log($(this).parent().find('h1').find('a').get(0))
是我需要点击的正确元素。
我试过没有.get(0)并在我记录
时得到关注 [a, prevObject: jQuery.fn.init(1), context: p.more-info, selector: "h1 a"]
答案 0 :(得分:3)
.get(0)
返回jQuery对象中的DOM元素,但.trigger()
是一个jQuery函数,因此它需要对jQuery对象进行操作。
但是,如果您在点击链接时尝试模拟浏览器的内置操作,.trigger()
将无法执行此操作。您需要调用DOM元素的.click()
方法。
$(".more-info").click(function() {
$(this).parent().find('h1').find('a').get(0).click();
});
答案 1 :(得分:1)
您可以使用元素的.click()方法,但我建议在more-info元素上添加一个链接。
无论如何,这应该有效:
$(this).parent().find('h1 > a').get(0).click();
查看这里的小提琴: https://jsfiddle.net/Lpyctuga/4/