如何使JQuery代码更高效

如何使JQuery代码更高效,jquery,Jquery,(JQuery新手)我有一个大约20个元素的列表,当页面加载时需要禁用这些元素。元素列表包含完整的HTML元素,每个元素都有遵循一般命名约定的不同ID $('#rmX\\.val').prop("disabled",true); $('#rmX\\.unit').prop("disabled",true); $('#rmX\\.ba').prop("disabled",true); $('#rmX\\.sms\\.opt').pro

(JQuery新手)我有一个大约20个元素的列表,当页面加载时需要禁用这些元素。元素列表包含完整的HTML元素,每个元素都有遵循一般命名约定的不同ID

        $('#rmX\\.val').prop("disabled",true);
        $('#rmX\\.unit').prop("disabled",true);
        $('#rmX\\.ba').prop("disabled",true);
        $('#rmX\\.sms\\.opt').prop("disabled",true);
        $('#rmX\\.sms\\.val').prop("disabled",true);
        $('#rmX\\.sms\\.car').prop("disabled",true);
        $('#rmX\\.em\\.opt').prop("disabled",true);
        $('#rmX\\.em\\.val').prop("disabled",true);
        $('#rmX\\.off\\.opt1').prop("disabled",true);
        $('#rmX\\.off\\.opt2').prop("disabled",true);
        $('#rmX\\.off\\.val').prop("disabled",true);
        $('#rmZ\\.end\\.vald').prop("disabled",true);
        $('#rmZ\\.end\\.valw').prop("disabled",true);
        $('#rmZ\\.end\\.valm').prop("disabled",true);
        $('#rmZ\\.end\\.valy').prop("disabled",true);
        $('#rmZ\\.date').prop("disabled",true);
        $('#rmZ\\.time').prop("disabled",true);
        $('#rmZ\\.ap').prop("disabled",true);
        $('#evt\\.sec\\.opt2').prop("disabled",true);
        $('#evt\\.sec\\.val21').prop("disabled",true);
        $('#evt\\.sec\\.val22').prop("disabled",true);
有没有办法让这份清单更有效率,或者这就是你要做的

(另外,令人惊讶的是没有“最佳实践”标签。)


编辑:将原始问题中的“隐藏”更改为“禁用”,如“我的代码”中所示。

为什么不向您的
#evt
中要禁用的所有元素添加一个类
canBeDisabled

$("#evt .canBeDisabled").prop("disabled", true);

为什么不在
#evt
中要禁用的所有元素中添加一个类
canBeDisabled

$("#evt .canBeDisabled").prop("disabled", true);

添加一个类,然后按以下方式操作:

$('.hideClass').hide();
(或)


添加一个类,然后按以下方式操作:

$('.hideClass').hide();
(或)


可以将这些字符串存储在数组中:

var arr = [ '#rmX\\.val', '#rmX\\.unit', ... ];
然后:

$.each( arr, function ( i, val ) {
    $( val ).prop( 'disabled', true );
}); 

这不会提高效率,但会消除代码重复。

您可以将这些字符串存储在数组中:

var arr = [ '#rmX\\.val', '#rmX\\.unit', ... ];
然后:

$.each( arr, function ( i, val ) {
    $( val ).prop( 'disabled', true );
}); 

这不会提高效率,但会消除代码重复。

另一种方法是,如果字段分组在一起,则可以使用父对象(如div)或更好的字段集


关于一个快速而肮脏的示例,请参见

另一种方法是,如果将字段分组在一起,则可以使用父对象(如div)或更好的字段集


有关一个快速而肮脏的示例,请参见

为什么不在所有需要禁用的元素上使用一个额外的类呢?一个just do
$('.yourClass').prop('disabled',true)
哦,您的ID值中有一个点。多方便啊,不是吗<代码>:P没有“最佳实践”标签,因为有一个。谢谢Sparky。互联网是个大地方。甚至都不知道这个存在。我会用的。为什么不在所有需要禁用的元素上使用一个额外的类呢?一个just do
$('.yourClass').prop('disabled',true)
哦,你的ID值中有一个点。多方便啊,不是吗<代码>:P没有“最佳实践”标签,因为有一个。谢谢Sparky。互联网是个大地方。甚至都不知道这个存在。我将使用它。我将添加元素可以有多个类。你会惊讶于有多少人不知道这个。乔恩,这将是我的下一个问题。我会查的。谢谢埃里克,非常感谢。我来试一试。@JonP我想这并不明显,因为它的名字不是
classes=“”
。我要补充一点,元素可以有多个类。你会惊讶于有多少人不知道这个。乔恩,这将是我的下一个问题。我会查的。谢谢埃里克,非常感谢。我来试一试。@JonP我想这并不明显,因为它的名字不是
classes=“”