按类获取id然后触发click

时间:2014-01-24 14:00:32

标签: jquery html

我试图从动态div中逐个获取id,然后触发click功能。如果有人能指出我正确的方向,我将不胜感激。

这是我的代码:

<div id="navigation"> 
    <div id="nav-img1" class="slideNav"><a href="#" class="img1">img 1</a></div>
    <div id="nav-img2" class="slideNav"><a href="#" class="img2">img 2</a></div>
    <div id="nav-img3" class="slideNav"><a href="#" class="img3">img 3</a></div>
    <div id="nav-img4" class="slideNav"><a href="#" class="img4">img 4</a></div>
</div>

<div id="container-scroll">
    <div id="container">
        <div id="img1" class="slideItem">img 1</div>
        <div id="img2" class="slideItem">img 2</div>
        <div id="img3" class="slideItem">img 3</div>
        <div id="img4" class="slideItem">img 4</div>
    </div>
</div>
<script>
$(document).ready(function(){
    $('.slideItem').css('cursor', 'pointer').click(function() {
        var id = $('.slideNav').attr('id');
        $('.slideNav #'+id).find('a').trigger('click');
    });
});
</script>

我希望通过查看代码来理解我想要达到的目标更清楚。

3 个答案:

答案 0 :(得分:1)

你的意思是

var id = $(this).attr('id');

$('.slideNav #nav-'+id).find('a').trigger('click');

答案 1 :(得分:1)

问题是你在选择上混淆了一些东西,试试这个:

$('.slideItem').css('cursor', 'pointer').click(function() {
    var id = $(this).attr('id');
    $('.slideNav a.'+id).trigger('click');
});

这样你就可以得到点击的.slideItem的id,并使用它的类触发.slideNav的click事件。

答案 2 :(得分:0)

我认为你想要这样的东西,不需要使用ID:

$(document).ready(function(){
    $('.slideItem').css('cursor', 'pointer').click(function() {
        var index = $(this).index();
        $('#navigation').find('a').get(index).click();
    });
});

如果你想要只触发jQuery处理程序,而不是DOM节点点击方法,请使用:

 $('#navigation').find('a').eq(index).click();

或者:

$('.slideNav').eq(index).find('a').click();

等...有很多可能性......