gpt4 book ai didi

javascript - splice() 无法正常工作

转载 作者:行者123 更新时间:2023-12-02 20:40:00 26 4
gpt4 key购买 nike

我正在为每个单击的导航容器设置一个 cookie。

它设置一个连接的数组并设置cookie值。如果再次单击,则将其从数组中删除。

它有点问题。

只有点击其他元素后才会拼接。然后它的行为就很奇怪。

可能是splice不是正确的方法

var navLinkToOpen;
var setNavCookie = function(value){
var isSet = false;
var checkCookies = checkNavCookie()
setCookieHelper = checkCookies? checkCookies.split(","): [];
for(i in setCookieHelper){
if(value == setCookieHelper[i]){
setCookieHelper.splice(value,1);
isSet = true;
}
}
if(!isSet){setCookieHelper.push(value)}
setCookieHelper.join(",")
document.cookie = "navLinkToOpen"+"="+setCookieHelper;
}


var checkNavCookie = function(){
var allCookies = document.cookie.split( ';' );
for (i = 0; i < allCookies.length; i++ ){
temp = allCookies[i].split("=")
if(temp[0].match("navLinkToOpen")){
var getValue = temp[1]
}
}
return getValue || false
}



$(document).ready(function() {
$("#LeftNav li").has("b").addClass("navHeader").not(":first").siblings("li").hide()
$(".navHeader").click(function(){
$(this).toggleClass("collapsed").nextUntil("li:has('b')").slideToggle(300);
setNavCookie($('.navHeader').index($(this)))
return false
})

var testCookies = checkNavCookie();
if(testCookies){
finalArrayValue = testCookies.split(",")
for(i in finalArrayValue){
$(".navHeader").eq(finalArrayValue[i]).toggleClass("collapsed").nextUntil(".navHeader").slideToggle (0);
}

}
});

最佳答案

for(i in setCookieHelper){
if(value == setCookieHelper[i]){

读作:

for element in setCookieHelper

这个元素可能不是一个int,这会导致你的拼接失败,另外你必须检查该元素是否包含你想要拼接的位置,然后你必须在尝试之前检查它的值是否在setCookieHelper长度之内拼接。

如果你想在给定位置进行拼接,你应该使用 for:

for(i=0;i<setCookieHelper.lenght;i++){
if(value == setCookieHelper[i]){
setCookieHelper.splice(i,1);
isSet = true;
}
}

splice 需要一个开始“拼接”的索引以及“拼接”元素的数量。

关于javascript - splice() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647675/

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