是否可以创建一个使用选择器名称的jQuery函数

Is it possible to create a jQuery function that plays around with the name of the selector?

本文关键字:选择器 函数 jQuery 一个 创建 是否      更新时间:2023-09-26

我正在尝试以表格形式为"剩余字符数"制作计数器:

<input type="text" id='username_input'>
<input type="text" id='password_input'>

是否可以创建一个函数,其参数将成为选择器的一部分?所以你可以更好地理解我的问题,我会给你看一个例子,我做过,这行不通。

我想做的事情似乎很明显。这意味着我必须标准化所有id。我知道我可以在函数中创建一个 maxChar 参数,但我把我的错误留field+'_maxChar',以便您可以告诉我为什么这是不可能的。

提前非常感谢

var username_maxChar=20,password_maxChar=30;
function countLeft(field,minCharacters){
$('#'+field+'_input').keyup(function(){
    var input_length = $('#'+field+'_input').val().length;
    var input_count = field+'_maxChar' - input_length;
    $('#'+field+'_counter').text(input_count);

    }); 
    }
countLeft(username,6);

由于已在函数作用域之外使用 var 关键字定义了这些属性,因此它们将成为window对象的属性,可以使用[]表示法进行访问:

var input_count = window[field + '_maxChar'] - input_length;

但是,您可以考虑只使用 maxlength 属性:

<input type="text" id='username_input' maxlength='20'>
<input type="text" id='password_input' maxlength='30'>

这些可以通过.attr() jQuery 获得

var input_count = $('#' + field + '_input').attr('maxlength') - input.length;