Как изменить атрибут переменной в Jquery?

Я борюсь с чем-то основным, и я не могу решить это.

Следующее работает отлично:

switch (url_param) {
    case '80':
        $('input[name=power][value=80]').prop('checked', true);
        break;
    case '90':
        $('input[name=power][value=90]').prop('checked', true);
        break;
    case '99':
        $('input[name=power][value=99]').prop('checked', true);
        break;
}

Однако мне приходится взаимодействовать со многими различными входными данными на странице, поэтому я хотел бы сначала сохранить их в переменных, например

$input_power = $('input[name=power]');

Как я могу достичь того же результата, используя переменную?

3 ответа

Решение

Ты можешь использовать filter() метод отфильтровать соответствующий элемент.

Сократите набор совпадающих элементов до тех, которые соответствуют селектору или проходят тест функции.

var $input_power = $('input[name=power]');
switch (url_param) {
    case '80':
    case '90':
    case '99':
        $input_power.filter(function(){
            return parseInt(this.value, 10) == parseInt(url_param, 10);
        }).prop('checked', true);
        break;
}

В приведенном выше примере я улучшил код и использовал parseInt(str, radix) для целого числа.

Удалить оператор регистра и использовать только одну строку

$('input[name=power][value='+ url_param +']').prop('checked', true);

Попробуй это:

var myInput = $('input[name=power][value=80]');

Где-то позже в вашем коде:

$(myInput).prop('checked', true);

Надеюсь это поможет.

Другие вопросы по тегам