簡體   English   中英

如果不同的條件語句IF合並為一個條件語句(javaScript)

[英]Unite in one conditional statements IF different conditional statements IF (javaScript)

  var message;    
        if ( $('#one').length == 1 ){
           message = "101";
        }
        if ( $('#two').length == 2 ){ 
           message = "102";
        }
        if ( $('#third').length == 3 ){
           message = "103";
        }
    console.log(message);

如何將所有IF合並到一個IF使用運算符(||或另一個)中,並根據條件顯示不同的消息? 我嘗試過這樣做,但是很不幸。 謝謝你的進步。

其實你可以做

var message = "10"+$('#one').length;
console.log(message);

請注意,條件為0長度。 但是,為什么有多個具有相同ID的元素? 你的意思是上課嗎?

使用選擇器"#one"的結果.length應該始終為01因為document中元素的id應該是唯一的,不能在另一個元素上重復。

如果有多個具有id "one"的元素,請在HTML的元素處用id替換class ,並使用選擇器".one"

這個問題已經改變了,說實話,這比以前沒有意義了。

我要做的是假設您要選擇所有三個元素,並根據找到的實際元素配置一條消息。 我將使用下面的第二個示例來說明如何使用ID,盡管類更好。

var msgs = {
  1: "101",
  2: "102",
  3: "103",
}

var message = msgs[$("#one,#two,#three").length] || "Unknown";

因此,現在它將嘗試選擇所有三個,並根據實際發現的數量給出一條消息。

同樣,這並不假定實際情況像僅將長度附加到字符串那樣簡單。


原始答案

我不會假設.length和消息之間總是存在如此巧妙的.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不好,但jQuery只返回一個ID選擇器元素,盡管querySelectorAll可以返回多個元素。

暫無
暫無

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

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