代码之家  ›  专栏  ›  技术社区  ›  oshirowanen

在屏幕上显示结果之前尝试编辑结果

  •  0
  • oshirowanen  · 技术社区  · 14 年前

    以下内容似乎工作不正常。

        success: function(results) 
        { 
            var $results = $(results);
    
            $results.find('a[href$=".exe"]').each(function(){
                if (FileExists(this.href) == false) {
                   $(this).parent().remove(); 
                } 
            }); 
    
            $("#divSearchResults").empty().append($results);
        }
    

    它应该从结果中删除任何.exe链接,然后将修改后的结果附加到屏幕上。

    编辑1:下面是fileexists函数的脚本:

    function FileExists(path) {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
    
        FileExist = fso.FileExists(path);
    
        if (FileExist == true) {
            return true
        } else {
            return false
        }
    }
    

    编辑2:结果包含如下内容:

    <div><a href="link1.xls">link 1</a></div>  
    <div><a href="link2.exe">link 2</a></div>  
    <div><a href="link3.doc">link 3</a></div>  
    <div><a href="link4.aspx">link 4</a></div>  
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Kristoffer Sall-Storgaard ProllyGeek    14 年前

    经过一些测试,我认为问题出在 $(this).parent().remove() 如果你看看你的结果 this fiddle 对战 this fiddle 第一个不起作用,但是第二个在我们把它包装在一个范围内之后起作用,简单地说,这样$results就不会变成空的。

        2
  •  0
  •   Kristoffer Sall-Storgaard ProllyGeek    14 年前

    有点预感, FileExists 使用Ajax调用?在这种情况下,它的异步AN将不会返回任何可靠的内容,因为它退出了应用程序的当前流。