2011-07-26 13 views
0

次のスクリプトを書くより効率的な方法はありますか?それがしているのは、アイテムの数を更新し、その数に応じてその数の単数または複数のテキストを表示することです。jQueryでより効率的な隠蔽/表示ができますか?

コードは、「これを表示してこれを隠す」と言うのは冗長なようです。それに基づいて表示または非表示にするべきものにブール値を渡す方法はありませんか?

var includedCount = $("#services").find("tbody tr td:nth-child(1) :checkbox:checked").length; 
var requiredCount = $("#services").find("tbody tr td:nth-child(2) :checkbox:checked").length; 

$("#js-included-num").html(includedCount); 
if(includedCount === 1){ 
    $("#js-included-plural").hide(); 
    $("#js-included-singular").show(); 
}else{ 
    $("#js-included-plural").show(); 
    $("#js-included-singular").hide(); 
} 

$("#js-required-num").html(requiredCount); 
if(requiredCount === 1){ 
    $("#js-required-plural").hide(); 
    $("#js-required-singular").show(); 
}else{ 
    $("#js-required-plural").show(); 
    $("#js-required-singular").hide(); 
} 

答えて

1

、関数内の線に沿って何かにそれを置く:)私は(.toggle `を知ってる

function togglePlural(baseSelectorName,count) { 

    var p = $(baseSelectorName+'-plural'), s = $(baseSelectorName+'-singular'); 
    (count === 1 ? s : p).show(); 
    (count === 1 ? p : s).hide(); 
    // or use toggle() 
} 
+0

素晴らしい感謝。これは素晴らしいです。私はそれを少し修正しましたが、これがその基礎です。 –

0

は、あなたはそれ以外の場合はそれが表示されます、トグル方式http://api.jquery.com/toggle/

要素が表示されている場合は、それを非表示になります

をチェックすることがあります。

+0

を'私はそれがブール値を取らないことに失望しています。両方の要素がデフォルトで表示され、JSはどの要素を非表示にするかを決定します。 –

関連する問題