模拟单击元素,该元素是单击元素的父元素的父元素

时间:2013-02-06 17:41:30

标签: jquery selector parent next

我想模拟一个元素的点击,该元素是被点击元素的父元素的兄弟元素.i.e。 li中的a与li中的a.active在其中。这不起作用:

JQUERY

$('li.product').click(function() {
    $('a.active').parent().parent().next().find(a).click();

        });

HTML

<ul>
 <li class="product"><li>
 <li class="product"></li>
 <li class="product"></li>
</ul>


<ul>
    <li id="">
    <div class="page">
    <a class="active" href="javascript:function Z(){Z=""}Z()">1</a>
    </div>
    </li>
    <li id="">
    <div class="page">
    <a class="" href="javascript:function Z(){Z=""}Z()">2</a>
    </div>
    </li>
</ul>

3 个答案:

答案 0 :(得分:2)

''中缺少引号.find()

应该是这样的:http://jsfiddle.net/SbDKD/

$('a.active').parent().parent().next().find('a').click();

答案 1 :(得分:0)

以下为我工作

$('li.product a.active').click(function() {
    $(this).parent().parent().next().find('a').click();
    return false;
});

假设我们有一个HTML:

<li class="product">
  <div class="page">
     <a class="active" href="javascript:alert('click 1')">1</a>
   </div>
</li>
<li class="product" onclick="alert('tickle')">
    <div class="page">
        <a onclick="alert('tickle me')" href="javascript:alert('click 2');">2</a>
    </div>
</li>

(HTML中的内联onclick处理程序,仅用于方便测试)。

答案 2 :(得分:0)

我会将click监听器放在a标签上,并使用.parents()函数找到父li,以便找到它,无论你有多深。然后在下一个元素中找到a。

$('a').click(function() {
  $(this).parents('li').next().find('a').trigger('click');

});

唯一的问题是它们都会触发它们的后续元素。但如果你只有两个它应该工作。