按下虚假阅读更多按钮

时间:2017-07-06 17:16:38

标签: javascript jquery

结构如下:

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"]

2 个答案:

答案 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();
 });

请参阅How to trigger a click on a link using jQuery

答案 1 :(得分:1)

您可以使用元素的.click()方法,但我建议在more-info元素上添加一个链接。

无论如何,这应该有效:

$(this).parent().find('h1 > a').get(0).click();

查看这里的小提琴: https://jsfiddle.net/Lpyctuga/4/