gpt4 book ai didi

javascript - 为什么它不适用于数组中的类 ".1"而适用于其他类?

转载 作者:行者123 更新时间:2023-11-28 18:28:38 25 4
gpt4 key购买 nike

我有一个名为 array 的数组(注释为 TOP array),这个数组实际上包含不同 div 元素的类。我加入了数组,使每个元素的形式为“.1”或“.4”等,现在,如果单击其中的任何类,我将其 html 存储在变量 hello 中,然后从 hello 的 html 中提取类并将它们放入一个数组中。现在我需要知道用户点击了什么,所以我创建了一个数组 blaharray 来将 hello 的数组元素与它进行比较。通过这样做,我尝试将 hello 数组的“1”或“6”等类与 blaharray 进行匹配。如果匹配,我添加“。”与 hello 的匹配元素使其类似于“.7”,表示用户单击的类,并将其存储在 userclicked 中。但是,如果单击“.1”类,则 userclicked 不会返回任何内容。所以我尝试检查类“.1”的 hello 数组中是否存在问题,并发现在 for 循环之外(疯狂代码开始的地方) hello 返回类“.1”的正确数组,即 [“1”, "col-xs-4", "col-md-4"] 但在 for 循环内,当我单击“.1”时控制台 hello 时,它在控制台中没有输出。但是,如果我单击任何其他类(例如 2 到 9),它会在 for 循环内部和外部提供正确的 hello 和 userclicked 输出。但是为什么当 hello 为 ["1", "col-xs-4", "col-md"时它不起作用-4"](我的意思是当单击“.1”时)?

array = [".1,.2,.3,.4,.5,.6,.7,.8,.9"]; //TOP  array

$(array.join("")).click(function() {
$(this).html(input);
var hello=this; //it will store the html of clicked class
hello=hello.className.split(/\s+/); //it will extract the classes and put them in an array like this---> ["1", "col-xs-4", "col-md-4"]

var blaharray=["1","2","3","4","5","6","7","8","9"];
console.log(hello); //here it works giving ["1", "col-xs-4", "col-md-4"]

for(var i=0;i<hello.length;i++){ //Crazy code starts
if(blaharray.indexOf(hello[i])>0){ //it will check if any class in hello array is found in blah array,we are checking here for class "1" of ["1", "col-xs-4", "col-md-4"]
userclicked="."+hello[i]; //if it is found, it adds a "." to it to make ".1" of TOP array joined by ""(I will use it in some code)
console.log(hello); //here the console produces nothing i.e blank ONLY if ".1" is clicked
}
} //Crazy code ends to tell us what the user clicked
});

这是供类引用的 html,我有 1,2 等 div 类。

<div class="container-fluid">
<div class=" yo text-center row">
<h1>Tic Tac Toe by Uzma</h1>
<div class="col-xs-12 col-md-12 we">
<div class="row ">
<div class="1 col-xs-4 col-md-4"></div>
<div class="2 col-xs-4 col-md-4"></div>
<div class="3 col-xs-4 col-md-4"></div>
</div>
<div class="row">
<div class="4 col-xs-4 col-md-4"></div>
<div class="5 col-xs-4 col-md-4"></div>
<div class="6 col-xs-4 col-md-4"></div>
</div>
<div class="row">
<div class="7 col-xs-4 col-md-4"></div>
<div class="8 col-xs-4 col-md-4"></div>
<div class="9 col-xs-4 col-md-4"></div>
</div>
</div>
</div>
</div>

这是Codepen来检查不同的点击http://codepen.io/meow414/pen/QExLOG?editors=1001

最佳答案

这是因为 blaharray 中“1”的索引为 0,永远不会通过 if 条件:

 var blaharray=["1","2","3","4","5","6","7","8","9"];
console.log(blaharray.indexOf("1"));

你应该这样做:if(blaharray.indexOf(hello[i])>=0){

IndexOf 函数返回“The first index of the element in the array; -1 if not found.

关于javascript - 为什么它不适用于数组中的类 ".1"而适用于其他类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com