質問は変更されています。正直なところ、以前よりも意味がなくなっています。
3つの要素をすべて選択し、実際の要素の数に基づいてメッセージを構成するとします。下の2番目の例を使って、IDがどのように表示されるかを示しますが、クラスは優れています。
var msgs = {
1: "101",
2: "102",
3: "103",
}
var message = msgs[$("#one,#two,#three").length] || "Unknown";
これで3つすべてを選択しようとしましたが、実際に見つかった数に基づいてメッセージが表示されます。
これは、文字列に長さを追加するだけの簡単な例ではありません。
元答え
私はいつも.length
とメッセージの間に、このようなきちんとしたペアリングがあるように起こっているという仮定を作るつもりはありません。
より一般的な解決策は、switch
ステートメントを使用することです。
var message;
switch ($('#one').length) {
case 1: message = "101"; break;
case 2: message = "102"; break;
case 3: message = "103"; break;
default: message = "Unknown";
}
console.log(message);
switch
は唯一の方法ではありません。数値をメッセージに関連付けるオブジェクトを作成することもできます。
var msgs = {
1: "101",
2: "102",
3: "103",
}
var message = msgs[$("#one").length] || "Unknown";
重複するIDが良好ではないがquerySelectorAll
は、複数返すことができるけれどものjQueryのみ、ID選択のための一つの要素を返すことに注意してください。
質問にHTMLを含めることはできますか? – guest271314
私は質問が間違っていたことをお詫びします。私はそれを修正しました – Makhnov
ID「3」のページに3つの要素が存在する可能性がありますか?実際の問題を説明するのではなく、あなたの解決策を尋ねるという罠に惑わされていると思います。 – llama