这个问题已经发生了变化,说实话比以前更少了。
我要做的是假设您要选择所有三个元素,并根据找到的实际元素的数量来配置消息。我将使用下面的第二个示例来展示如何使用ID,尽管类更好。
var msgs = {
1: "101",
2: "102",
3: "103",
}
var message = msgs[$("#one,#two,#three").length] || "Unknown";
所以,现在它会尝试选择所有三个,并将根据实际发现的数量给出消息。
这再次不假设实际情况就像将长度附加到字符串一样简单。
原来的答案
我不会做出假设有总是会成为.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";
注意,jQuery将只返回一个元素的ID选择,虽然querySelectorAll
可以返回多,但重复的ID是不好的。
你可以在问题中包含HTML吗? – guest271314
我对这个问题表示抱歉,我纠正了它 – Makhnov
你是说在页面上有三个元素,ID为'three'?我想你已经陷入了询问你的解决方案而不是描述实际问题的陷阱。 – llama