Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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 如何拖放数组_Javascript_Html_Arrays_Drag And Drop - Fatal编程技术网

Javascript 如何拖放数组

Javascript 如何拖放数组,javascript,html,arrays,drag-and-drop,Javascript,Html,Arrays,Drag And Drop,但是我的数据在drop上是这样的: [ <1 empty space>, "my_string1", Array[2], <3 empty spaces>, "my_string2"… ] 我的数组已在他的元素中“分解”,因此我选择的列表\u exe_与以前没有相同的索引,这就是问题所在 有没有简单的方法来解决这个问题?我可以手动重建阵列,但可能可以在不丢失格式的情况下传输数据,或者可以传递多组数据 编辑: 我可能是错的,但最后看起来您无法直接传递数组。我不熟悉事件。数

但是我的
数据
drop
上是这样的:

[ <1 empty space>, "my_string1", Array[2], <3 empty spaces>, "my_string2"… ]
我的数组已在他的元素中“分解”,因此我选择的
列表\u exe_
与以前没有相同的索引,这就是问题所在

有没有简单的方法来解决这个问题?我可以手动重建阵列,但可能可以在不丢失格式的情况下传输数据,或者可以传递多组数据

编辑:
我可能是错的,但最后看起来您无法直接传递数组。

我不熟悉
事件。数据传输
,但由于您传递的是文本,因此您需要在数组上使用
JSON.stringify
JSON.parse
。我已经修改了您的代码以包含这些

,my_string,first_element_of_my_array,second_element_of_my_array,,,,my_string2...
document.getElementById('canvas_-map').addEventListener(
“dragstart”,函数(事件){
var list_exe_selected=[];
var image_match=[];
//[…]查找图像匹配的代码将是htmlcollection
列表_exe_所选[i]=[];

对于(var j=0;jAlso,pleeeaaase不使用Snakecase。Camelcase是JavaScript标准。请参阅。
,my_string,first_element_of_my_array,second_element_of_my_array,,,,my_string2...
document.getElementById('canvas_map').addEventListener(
    'dragstart', function(event) {
    var list_exe_selected=[];
    var image_match=[];
    //[...] code to find images image_match will be an htmlcollection
    list_exe_selected[i]=[];
    for (var j=0; j<image_match.length; j++) {
        var str=image_match[j].href.baseVal;
        list_exe_selected[i].push(str);
    };

    // Turns the array into a JSON string
    list_exe_selected = JSON.stringify(list_exe_selected);

    // saves the array as 'text' or a string
    event.dataTransfer.setData('text', list_exe_selected);
}
document.getElementById('canvas_map').addEventListener(
    'dragover', function(event) {
    event.preventDefault();
});
document.getElementById('canvas_map').addEventListener(
    'drop', function(event) {
    // gets the array as a string or 'text'
    var data = event.dataTransfer.getData('text');

    // formats the saved string into an array
    data = JSON.parse(data);
    var list_exe_selected=data.split(',');
    for (var i=1; i<list_exe_selected.length; i++) {
        exe_selected=list_exe_selected[i];
        //do stuff
    };
};