繁体   English   中英

使用替换删除 url 的一部分

[英]using replace to remove part of url

我的问题:我需要删除部分目录才能在 for 循环设置中用作 url。

php 文件

header('Content-type: application/json');

echo json_encode(array(
    "name" => "website",
    "type" => "folder",
    "path" => $dir,
    "items" => $response
));

我有两个函数路径,即 usr/www/account/website/folder1/img.png 路径替换 function 应该是 /folder1/img.png当它在 For 循环中时收到未定义的错误,但在没有循环的情况下工作正常,我究竟做错了什么?

if(scannedFiles.length) {

                scannedFiles.forEach(function(f) {
                    var paths = f.path.replace('usr/www/account/website', '');

                    var file = $('<li class="files"><a href="'+ f.paths +'" title="'+ f.paths +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');
                    file.appendTo(fileList);
                });

            }

“f.paths”是不必要的,因为它是一个局部变量并且不是从数组中提取的,因此通过将其更改为“paths”它可以工作

var file = $('<li class="files"><a href="'+ f.paths +'" title="'+ f.paths +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');

在您的代码中, f.pathsundefined ,您要么需要使用替换f.pathpaths ,要么使用f.path ,这是原始文件路径。

以下代码中的“f”指的是已扫描文件中的每个项目,并且当您尝试访问 f.paths 时,如果路径是该 object 的属性,则将给出该值。 如果路径不是一个属性,它会给你未定义的。

您可以修改您的代码如下

    if(scannedFiles.length) {    
                scannedFiles.forEach(function(f) {    
                    let replacedPath = f.path.replace('usr/www/account/website', '');

                    let file = $('<li class="files"><a href="'+ replacedPath +'" title="'+ replacedPath  +'" class="files">'+icon+'<span class="name">'+ name +'</span> <span class="details">'+fileSize+'</span></a></li>');
                    file.appendTo(fileList);
                });

            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM