Пример jQuery inArray в фильтрах

0

Возможно ли такое функционирование?

function show_upload_fieldset_if_necessary () {

    var in_this_cases = new Array (2110,2120,2130,2140,2150,2160);
    $('.my_radiobuttons :input[value="$.inArray(in_this_cases)"]').click(function(event) {
        $('#id_my_upload_fieldset').slideDown('slow');
    });
}

Что я делаю не так?

Теги:
filter

3 ответа

4
Лучший ответ

Вы не можете поместить Javascript или jQuery в такой селектор.

Вместо этого вы можете использовать .filter:

$(".my_radiobuttons :radio").filter(function() {
  return $.inArray($(this).val(), in_this_cases) > -1;
}).click(function() {
  $('#id_my_upload_fieldset').slideDown('slow');
});
  • 1
    ..но я всегда получаю -1?
  • 0
    У вас есть два варианта. Измените массив, чтобы использовать строки new Array("2110", "2120"...etc) Или используйте parseInt внутри inArray : $.inArray(parseInt(this.value), in_this_cases) > -1;
Показать ещё 3 комментария
1

Невозможно использовать такой селектор, но вы можете использовать фильтр, как показано ниже.

function show_upload_fieldset_if_necessary () {

    var in_this_cases = new Array (2110,2120,2130,2140,2150,2160);
    $('.my_radiobuttons :input').filter(function(){
        return $.inArray(this.value, in_this_cases) != -1;
    }).click(function(event) {
        $('#id_my_upload_fieldset').slideDown('slow');
    });
}
  • 0
    return ~$.inArray(this.value, in_this_cases) ;)
  • 0
    @ А. Вольф да забыл про -1
Показать ещё 1 комментарий
0
var $filtered = $('.my_radiobuttons :input').filter(function(){
     return $.inArray(this.value, in_this_cases) > -1
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню