首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >splice()不能正常工作

splice()不能正常工作
EN

Stack Overflow用户
提问于 2010-04-16 01:41:12
回答 1查看 2K关注 0票数 0

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

它设置联接的数组并设置Cookie值。如果它再次被点击,那么它将从数组中删除。

它不知何故出了问题。

它仅在单击其他元素后进行拼接。然后它就会变得很奇怪。

可能splice不是正确的方法

代码语言:javascript
复制
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);
}

}
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-16 01:49:40

代码语言:javascript
复制
for(i in setCookieHelper){
    if(value == setCookieHelper[i]){

读作:

代码语言:javascript
复制
for element in setCookieHelper

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

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

代码语言:javascript
复制
for(i=0;i<setCookieHelper.lenght;i++){
     if(value == setCookieHelper[i]){
         setCookieHelper.splice(i,1);
         isSet = true;
     }
}

splice需要一个从哪里开始“拼接”的索引和“拼接”元素的数量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2647675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档