如果不同的条件语句IF(javaScript),则合并为一个条件语句

如果不同的条件语句IF(javaScript),则合并为一个条件语句,javascript,Javascript,如何在一个IF use运算符| |或另一个中统一所有IF,并根据条件显示不同的消息? 我试过了,但很不幸。 谢谢你的帮助。事实上,你只需做 var message; if ( $('#one').length == 1 ){ message = "101"; } if ( $('#two').length == 2 ){ message = "102"; }

如何在一个IF use运算符| |或另一个中统一所有IF,并根据条件显示不同的消息? 我试过了,但很不幸。
谢谢你的帮助。

事实上,你只需做

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

请注意,具有长度为0的条件。但是,为什么有多个元素具有相同的id?你是说课堂

实际上你可以简单地做

  var message;    
        if ( $('#one').length == 1 ){
           message = "101";
        }
        if ( $('#two').length == 2 ){ 
           message = "102";
        }
        if ( $('#third').length == 3 ){
           message = "103";
        }
    console.log(message);
请注意,具有长度为0的条件。但是,为什么有多个元素具有相同的id?你是说课堂

结果。使用选择器1的长度应始终为0或1,因为文档中元素的id应是唯一的,而不是在另一个元素上重复

如果有多个元素具有id,则在HTML的元素处用一个替换类替换id,并使用selector.one。

使用selector one的结果长度应始终为0或1,因为文档中元素的id应是唯一的,而不是在另一个元素上重复


如果有多个元素具有id,则在HTML中的元素处用一个替换类替换id,并使用selector.one。

问题已经改变,老实说,这比以前没有意义了

我要做的是假设您希望选择所有三个元素,并根据找到的实际元素数量配置消息。我将使用下面的第二个示例演示如何使用IDs,尽管类更好

var message = "10"+$('#one').length;
console.log(message);
所以现在它将尝试选择所有三个,并根据实际发现的数量给出一条消息

这也不是假设实际情况像仅仅将长度附加到字符串一样简单

原始答案

我不会假设在.length和消息之间总是有这样一个整齐的配对

因此,更一般的解决方案是使用switch语句

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

var message = msgs[$("#one,#two,#three").length] || "Unknown";
开关不是唯一的方法。您还可以创建一个将数字与消息关联的对象

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);

请注意,jQuery只会为一个ID选择器返回一个元素,尽管querySelectorAll可能返回多个元素,但重复的ID并不好。

问题已经改变了,老实说,这没有以前那么有意义

我要做的是假设您希望选择所有三个元素,并根据找到的实际元素数量配置消息。我将使用下面的第二个示例演示如何使用IDs,尽管类更好

var message = "10"+$('#one').length;
console.log(message);
所以现在它将尝试选择所有三个,并根据实际发现的数量给出一条消息

这也不是假设实际情况像仅仅将长度附加到字符串一样简单

原始答案

我不会假设在.length和消息之间总是有这样一个整齐的配对

因此,更一般的解决方案是使用switch语句

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

var message = msgs[$("#one,#two,#three").length] || "Unknown";
开关不是唯一的方法。您还可以创建一个将数字与消息关联的对象

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);

请注意,对于ID选择器,jQuery将只返回一个元素,尽管querySelectorAll可能返回多个元素,但重复的ID并不好。

您能在问题中包含HTML吗?很抱歉,问题不正确,我更正了,您是说页面上可能有三个ID为三的元素吗?我认为你陷入了这样一个陷阱:询问你的解决方案,而不是描述实际问题。编辑后的问题没有完全更正。现在的问题完全不同了,尽管仍然存在相同的问题,即HTML中不同元素的id明显重复。同样,您可以在问题文本中包含HTML和完整的JavaScript吗?看,你能在问题中包含HTML吗?我很抱歉问题不正确我更正了它你是说页面上可能有三个ID为3的元素吗?我认为你陷入了这样一个陷阱:询问你的解决方案,而不是描述实际问题。编辑后的问题没有完全更正。现在的问题完全不同了,尽管仍然存在相同的问题,即HTML中不同元素的id明显重复。同样,您可以在问题文本中包含HTML和完整的JavaScript吗?看,我道歉问题不正确我更正了我道歉问题不正确我更正了我道歉问题不正确我更正了我道歉问题不正确我更正了我道歉问题不正确我更正了我道歉问题不正确我更正了我道歉问题不正确我更正了它