如何使用JQuery统一访问具有序号id的元素?

时间:2018-03-28 14:02:23

标签: jquery javascript-events

我在页面上有几个几乎相同的元素。它们的区别仅在于id-id =" id1",id =" id2",...,id =" id10" 我有一个看起来像这样的JQuery代码:

$('.element #set1 .select').on('mouseleave', function(){
    if ($('.element #set1 .select .options:visible').length) {
    $('.element #set1 .select .options').slideUp('fast');
    $('.element #set1 .select a.value').addClass('selected').text('1');
}});

...

$('.element #set10 .select').on('mouseleave', function(){
    if ($('.element #set10 .select .options:visible').length) {
    $('.element #set10 .select .options').slideUp('fast');
    $('.element #set10 .select a.value').addClass('selected').text('1');
}});

有没有办法如何只使用一个统一代码来访问具有不同ID的所有集合?

1 个答案:

答案 0 :(得分:1)

您可以在事件处理程序中使用当前元素上下文,即this,它引用调用该事件的元素并使用各种DOM遍历方法,即.find()来定位当前元素依赖项

$('#set1, #set2, ..., #set10 ').on('mouseleave', '.select', function () {
    if ($(this).find('.options:visible').length) {
        $(this).find('.options').slideUp('fast');
        $(this).find('a.value').addClass('selected').text('1');
    }
});