Javascript if-else if内部开关使用(”id“).length

Javascript if-else if内部开关使用(”id“).length,javascript,jquery,html,Javascript,Jquery,Html,代码已编辑。对第一个代码不完整表示歉意 我有一个从用户那里获取输入的代码,它附加了一个匹配该输入的图像。我想做的是设置不同的按钮(大约200个),以便在按下其他按钮时附加不同的图像。为此,我要做的是针对第一个if,在第一个switch案例中,使用(“#id”).length条件。 这是我的代码的一个简短示例: HTML: Javascript: $(document).ready(function() { var str; $("#1, #2").click(function () { te

代码已编辑。对第一个代码不完整表示歉意 我有一个从用户那里获取输入的代码,它附加了一个匹配该输入的图像。我想做的是设置不同的按钮(大约200个),以便在按下其他按钮时附加不同的图像。为此,我要做的是针对第一个if,在第一个switch案例中,使用(“#id”).length条件。 这是我的代码的一个简短示例:

HTML:


Javascript:

$(document).ready(function() {
var str;
$("#1, #2").click(function () { test(); });
});

var input = ['a','b','c'];

function test() {

var interval = setInterval(match, 1);
$("div").html("");
str = $("input").val().toLowerCase();
var i = 0;    

function match() {

    var imgs = ["<img src='https://1.bp.blogspot.com/-v2N2hPY33pc/V488gHu5aWI/AAAAAAAAHFM/loGVDK5OlGcft5UUz8-AHZjAd3E7OlZjACLcB/s1600/colorful-background-with-waves.jpg' alt='0'>",
                "<img src='https://upload.wikimedia.org/wikipedia/commons/c/c8/Widget_icon.png' alt='1'>"];            

    if (i < str.length) {

      switch (str[i]) {

        case input[0]:


            if ($("#1").length){
            $("div").append(imgs[0]);
          i++;
          break;    

            }else if ($("#2").length){

                $("div").append(imgs[1]);
          i++;
          break;
            }

    }

  else {
    clearInterval(interval);
    $("input").val("");
  }

}
}
$(文档).ready(函数(){
var-str;
$(“#1,#2”)。单击(函数(){test()});
});
变量输入=['a','b','c'];
功能测试(){
var间隔=设置间隔(匹配,1);
$(“div”).html(“”);
str=$(“输入”).val().toLowerCase();
var i=0;
函数匹配(){
变量imgs=[“”,
""];            
如果(i

现在,我已经设法使if工作了,它显示了图像,但是如果我按下第二个按钮,else if就不工作了。我做错了什么?

好吧,我一辈子都搞不清楚你试图用这段代码做什么,但这里有一个工作版本

$(文档).ready(函数(){
var-str;
$(“#1,#2”)。单击(函数(){test(this);});
});
变量输入=['a','b','c'];
函数测试(调用方){
var间隔=设置间隔(匹配,1);
var i=0;
$(“div”).html(“”);
str=$(“输入”).val().toLowerCase();
函数匹配(){
变量imgs=[“”,“”,“”,“”,“”];
如果(i

1.
2.

看起来您在
test()
函数中缺少了一个
}
。。。控制台上有错误吗?首先,
((“#1”).length)
不应该工作。您没有针对元素的
$
。您的JavaScript代码不完整。请你更新一下你的问题,提供一个-,很难找出半函数代码中的错误。如果您能让我们知道您迄今为止为解决您的问题所做的努力,这也会很有帮助。有关更多信息,请参阅帮助文章,并选择:)
(“#1”)。长度始终是
2
内部if条件始终为true(或truthy),因为
(“#1”)。长度是
2
-您正在测试字符串的长度
“#1”
。显示的HTML不包含任何
元素,因此
$(“输入”)
将不匹配任何内容。另外,您可以说
$(“#1,#2”)。单击(测试),您不需要匿名函数包装对
test()
的调用。非常感谢你的帮助。我会投我的赞成票,但我还不能。我想你应该能把它标为正确答案。
$(document).ready(function() {
var str;
$("#1, #2").click(function () { test(); });
});

var input = ['a','b','c'];

function test() {

var interval = setInterval(match, 1);
$("div").html("");
str = $("input").val().toLowerCase();
var i = 0;    

function match() {

    var imgs = ["<img src='https://1.bp.blogspot.com/-v2N2hPY33pc/V488gHu5aWI/AAAAAAAAHFM/loGVDK5OlGcft5UUz8-AHZjAd3E7OlZjACLcB/s1600/colorful-background-with-waves.jpg' alt='0'>",
                "<img src='https://upload.wikimedia.org/wikipedia/commons/c/c8/Widget_icon.png' alt='1'>"];            

    if (i < str.length) {

      switch (str[i]) {

        case input[0]:


            if ($("#1").length){
            $("div").append(imgs[0]);
          i++;
          break;    

            }else if ($("#2").length){

                $("div").append(imgs[1]);
          i++;
          break;
            }

    }

  else {
    clearInterval(interval);
    $("input").val("");
  }

}
}