如何在此获取文件夹名称

时间:2014-12-26 09:02:14

标签: php jquery

你好这个我得到的文件名中的每个ine,并且我在其上创建了超链接但是foldername缺少进一步操作我的代码

<script type="text/javascript">
$(document).ready(function(){
var files=<?php echo json_encode($files);?>;
var file_tree=build_file_tree(files);
file_tree.appendTo('#files');

function build_file_tree(files){
    var tree=$('<ul>');
    for(x in files){

        if(typeof files[x]=="object"){
        var span=$('<span>').html(x).appendTo(
        $('<li>').appendTo(tree).addClass('folder')
        );

        var subtree=build_file_tree(files[x]).hide();
        span.after(subtree);
        span.click(function(){

        $(this).parent().find('ul:first').toggle();
    });

    }else{
    $('<li>').html('<a href="/admin/appearance/?theme='+tree+'&file='+files[x]+'">'+files[x]+'</a>').appendTo(tree).addClass('file');
      }
    }

    return tree;

}

} );

</script>

我想在theme =

之后找到文件夹名称

1 个答案:

答案 0 :(得分:0)

变量tree是从$('<ul>')返回的jQuery DOM对象,您无法将其连接成字符串。我猜你会尝试获取innerHTML或父元素的文本。请考虑以下HTML:

<ul id="upper"> <!-- `tree` you're talking about -->
  <li class="folder">folder-name</li>
    <ul id="here">  <!-- `tree` you're talking about -->
      <li>file-name-1</li>
      <li>file-name-2</li>
    </ul>
</ul>

我们说你的循环现在是#here。您的文件夹名称很可能是从父<li class="folder">;

<ul id="upper">返回的
var tree = $('#here');
alert(tree.parent().find('.folder').text());

因此,您可以将theme='+tree+'&替换为theme=' + tree.parent().find('.folder').text() + '&。但是,您应该适当地设置idclass以正确遍历DOM树。然后,您必须使用正确的类/ id通过正确的DOM遍历来获取文件夹名称。

你的问题不明确。所以我的回答可能无法立即解决,但我希望你可以从中得到一个想法。

JSFiddle Example