簡體   English   中英

如何使此JQuery代碼更高效

[英]How do I make this JQuery code more efficient

(JQuery的新功能)我有大約20個左右的元素列表,需要在頁面加載時將其禁用。 元素列表包含HTML <input>元素的全部范圍,每個元素都有遵循一般命名約定的不同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);

有沒有一種方法可以使此列表更有效,或者僅是您將要使用的方法。

(PS。感到驚訝的是,沒有可用的“最佳做法”標簽。)

編輯:從我的代碼中顯示的“隱藏”從原始問題更改為“禁用”。

為什么不加個班canBeDisabled所有在你的元素#evt要禁用?

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

添加一個類,然后執行以下操作:

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

(要么)

$("#rmX\\.val, #rmX\\.unit, #rmX\\.ba, #rmX\\.ba").hide();

您可以將這些字符串存儲在數組中:

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

接着:

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

這不會使其效率更高,但是可以消除代碼重復。

另一種方法是,如果將字段分組在一起,則可以使用父對象,例如div或更好的字段集。

有關快速而骯臟的示例,請參見此小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM