gpt4 book ai didi

javascript - 将逗号和哈希分隔的字符串转换为数组

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

我正在使用 jquery sortable() 创建可拖动和可排序的框。

JQuery 代码如下所示:

    $('.column').sortable({
connectWith: '.column',
handle: '.header',
cursor: 'move',
placeholder: 'placeholder',
forcePlaceholderSize: true,
opacity: 0.8,
stop: function(event, ui)
{
$(ui.item).find('h2').click();
var sortorder='';

$('.column').each(function(){
var itemorder=$(this).sortable('toArray');
var columnId=$(this).attr('id');
sortorder+=columnId+'='+itemorder.toString()+'&';
});
sortorder = sortorder.substring(0, sortorder.length - 1)
console.log('SortOrder: '+sortorder);
//localStorage.setItem(JSON.stringify(sortorder).sortable);
localStorage.setItem("sortables", sortorder);
//localStorage.getItem("sortables");
}
}).disableSelection();

排序后生成的字符串是这样保存到本地的:

“col1=box3,box2,box1&col2=box4”

我很难尝试将它转换回数组,我还想知道一旦它转换回数组,我该如何获取这个数组并将其应用回框的排序顺序?

最佳答案

从 localStorage 存储和检索排序顺序后,您希望遍历每个列,按照它们之前在列中的相同顺序将 portlet“附加”到它们。因此,最后一个 portlet 将最后附加,第一个 portlet 最先附加。

代码如下:

    var str = localStorage.getItem("sortables." + window.location.pathname);
if (str) {
var cols = str.split('&');
for (var i = 0; i < cols.length; i++) {
var col = cols[i].split('=');
if (col[1].length > 0) {
var vals = col[1].split(',');
for (var j = 0; j < vals.length; ++j) {
console.log('appending ' + vals[j] + ' to ' + col[0]);
$('#'+col[0]).append($('#'+vals[j]));
}
}
}
}

这是 fiddle :http://jsfiddle.net/bWXZU/10/

请注意,您需要正确处理几个条件:(上面的代码确实如此)

  1. 当本地存储中没有任何内容时
  2. 当列没有项目时

希望对您有所帮助!

约翰...

关于javascript - 将逗号和哈希分隔的字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145923/

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