Передача нескольких индексов массива в триггер jQuery
0 Volterony [2014-02-25 18:08:00]
Возможно ли передать несколько индексов массива в событие триггера jquery.
На данный момент у меня есть массив, и я передаю следующее, чтобы вытащить только первый элемент:
$("#my-nav a").eq(1).trigger("click");
Можно ли вытащить более одного.eq(1)?
ура
javascript jquery html
3 ответа
1 Решение Karl-André Gagnon [2014-02-25 18:26:00]
Вы можете использовать это:
$("#my-nav a").filter(function(i){
return $.inArray(i, [1,3,5]) > -1;
})
Где массив в inArray
является необходимым индексом.
Сценарий: http://jsfiddle.net/2LpXM/1/
Если вы хотите передать массив в .eq()
, вы не можете вставить это в свой код:
$.fn._eq = $.fn.eq;
$.fn.eq = function(arg){
if($.isArray(arg))
return this.filter(function(i){
return $.inArray(i, arg) > -1;
});
else
return this._eq(arg);
}
затем используйте $el.eq(arr);
1 Paul. B [2014-02-25 18:20:00]
Зависит от того, какие элементы вы используете. Вы можете использовать: lt() и: gt(), как советовал Tushar, или вы можете использовать селектор nth-child(), который довольно мощный:
$( '#my-nav a:nth-child( -n+4 )' ).trigger( 'click' ); // Only the first four elements
$( '#my-nav a:nth-child( even )' ).trigger( 'click' ); // Any even elements.
В CSS-трюках есть несколько полезных примеров nth-child.
1 Tushar Gupta [2014-02-25 18:09:00]