Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中向cookie读写数据_Javascript_Jquery_Html_Arrays_Cookies - Fatal编程技术网

Javascript 在数组中向cookie读写数据

Javascript 在数组中向cookie读写数据,javascript,jquery,html,arrays,cookies,Javascript,Jquery,Html,Arrays,Cookies,我试图实现的是在一个cookie中存储两个数组,比如:[“提醒1”,“提醒2”]`[“时间1”,“时间2”] 这两个`字符用于分隔两个数组 根据我拥有的当前代码,cookie只会得到一个值rementer1,time1,就这样 我确实做错了什么,但在这一点上,我不知道如何解决这个问题 到目前为止,我的代码是: 标记: <table id="reminders"> <thead> <tr> <td>Em

我试图实现的是在一个cookie中存储两个数组,比如:
[“提醒1”,“提醒2”]`[“时间1”,“时间2”]

这两个`字符用于分隔两个数组

根据我拥有的当前代码,cookie只会得到一个值
rementer1,time1
,就这样

我确实做错了什么,但在这一点上,我不知道如何解决这个问题

到目前为止,我的代码是:

标记:

<table id="reminders">
    <thead>
        <tr>
            <td>Emlékeztető szövege</td>
            <td>Időpont</td>
            <td>Műveletek</td>
        <tr>
    </thead>
    <tbody>
        <tr class="remdef">
            <td class="remtxt"><em>Kattints a módosításhoz!</em></td>
            <td class="remtim"><input type="text" class="datepicker"></td>
            <td class="remope" style="opacity:1.0;"></td>
        <tr>
    </tbody>
</table>

埃姆莱凯兹特什维格
伊迪蓬特
米维莱泰克
卡廷是一个莫多西塔斯!
脚本:

var addnew_html = '<span class="typicn plus '+readCookie('nev')+'" onclick="remtbl(\'addnew\')"></span>';
var modify_html = '<span class="typicn edit '+readCookie('nev')+'" onclick="remtbl(\'modify\')"></span>';
var remove_html = '<span class="typicn times '+readCookie('nev')+'"  onclick="remtbl(\'remove\')"></span>';

$('#reminders tbody tr.remdef td.remtxt em').click(function(){
    defhtml = '<em>'+$(this).html()+'</em>';
    $(this.parentNode).html('<textarea width="100%" cols="50" id="rem-editing" class="rem-edit'+$('#reminders tbody tr').index($(this).parents('#reminders tbody tr'))+'"></textarea>');
    changeModifOptions($('#reminders tbody tr.remdef td.remope'),['addnew']);
});

function changeModifOptions(selector,options){
    $(selector).html(function(){
        return  ((!(options.indexOf('addnew'))) ? addnew_html : '' )+((!(options.indexOf('modify'))) ? modify_html : '')+((!(options.indexOf('remove'))) ? remove_html : '');
    });
}

function remtbl(cmd){
    if (cmd == 'addnew'){
        var cookieval = readCookie('reminder');
        createCookie('reminder',($('#reminders tbody tr.remdef td.remtxt textarea').val().replace('<','&lt;').replace('>','&gt;')+','+$('#reminders tbody tr.remdef td.remtim input.datepicker').val()+( (cookieval) ? '``'+cookieval : '')),parent.longtime);
        $('#reminders tbody').append('<tr class="remelm"><td class="remtxt">'+Array(readCookie('reminder').split('``'))[0]+'</td><td class="remtim"><input type="text" class="datepicker" value="'+Array(readCookie('reminder').split('``'))[1]+'"></td><td class="remope" style="opacity:1.0;"></td><tr>')
        changeModifOptions($('#reminders tbody tr td.remope:last'),['modify','remove']);
        $('#reminders tbody tr.remdef td.remtim input.datepicker').val('');
        $('#reminders tbody tr.remdef td.remope').html('');
    }
}
var addnew_html='';
var modify_html='';
var remove_html='';
$(“#提醒tbody tr.remdef td.remtxt em”)。单击(函数(){
defhtml=''+$(this.html()+'';
$(this.parentNode).html(“”);
更改修改选项($(“#提醒tbody tr.remdef td.remope”),[“添加新”];
});
功能更改修改选项(选择器、选项){
$(选择器).html(函数(){
返回(!(options.indexOf('addnew'))?addnew_html:“”)+((!(options.indexOf('modify')))?修改_html:“”)+(!(options.indexOf('remove'))?删除_html:“”);
});
}
函数remtbl(cmd){
如果(cmd=='addnew'){
var cookieval=readCookie(“提醒”);
createCookie($($)($)(''提醒tbody tr.remdef td.remtxt textarea').val().replace('','')+'','+$(''提醒tbody tr.remdef td.remtim input.datepicker').val()+((cookieval)''''.''+cookieval:''),parent.longtime);
$(“#提醒tbody”).append(“”+Array(readCookie('rements').split(“`'))[0]+“”)
更改修改选项($(“#提醒tbody tr td.remope:last”)、[“修改”、“删除]);
$(“#提醒tbody tr.remdef td.remtim input.datepicker”).val(“”);
$(“#提醒tbody tr.remdef td.remope”).html(“”);
}
}

javascript string.split的第一个参数采用字符或正则表达式。在您发布的代码中,您没有执行这两项操作

要使其成为有效的正则表达式,请使用斜杠反斜杠。像这样:

/``/

正如@Andreas所建议的,您可以使用
JSON.stringify(array)
将数组转换为JSON字符串,并使用
JSON.parse(string)

范例

var arr=['a','b','c'];
var json=JSON.stringify(arr);

createCookie('reminder', json);

var arrayFromCookie= JSON.parse( readCookie('reminder'));

对于不支持JSON对象的旧浏览器,包括JSON.js库

您的string.split在javascript中采用正则表达式,backtic可能意味着什么,必须转义。请尝试使用不同的分隔符,如逗号,看看它是否有效。@EricLeschinski事实并非如此。,?@Andreas我认为解析是我所需要的,但我该如何实现它?“伪”代码,因为您的代码对我来说不太可读(至少在我目前的情况下是^code)
var cookieval=[[“提醒1”,“提醒2”],[“时间1”,“时间2”];saveCookie(JSON.stringify(cookieval));cookieval=JSON.parse(readCookie())