簡體   English   中英

有沒有優化多個if,else if,else語句的方法?

[英]Are there ways to optimise multiple if, else if, else statements?

這是我的代碼,是否有某種方式可以循環遍歷if,else if和else語句以某種方式動態填充它們(沒有那么多語句,或者這被認為是一種好習慣)?

$('input').each( function () {

    var self = $(this)

    if ( self.attr( 'type' ) === 'email' && supportsInputType ( 'email' ) ) {
            self.data( 'fallback', 'email' )
    } else if ( self.attr( 'type' ) === 'url'  && supportsInputType ( 'url' ) ) {
            self.data( 'fallback', 'url' )
    } else if ( self.attr( 'pattern' ) && supportsAttr ( 'pattern' ) ) {
        self.data( 'fallback', 'pattern' )
    }

})

我省略了其他功能,而只關注if / else等。感謝您的任何建議。

如果使supportsInputType正確處理任何類型,則可以執行以下操作:

$('input[type]').each(function() {
    var $this = $(this);

    if (this.type !== $this.attr('type')) {
        $this.data('fallback', type);
    }
});

我將嘗試設計一個選擇器,該選擇器可立即按屬性獲取輸入並擺脫supportInputType 像這樣(未經測試):

var attrs = ['type=email','type=url','pattern'];

$.each(attrs, function(i,attr) {
  $('input['+ attr +']').data('fallback', attr.replace(/.+=/,''));
});

這可能應該與您當前的代碼一起使用。

暫無
暫無

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

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