Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Jquery - Fatal编程技术网

Javascript 附加时编辑结果?

Javascript 附加时编辑结果?,javascript,jquery,Javascript,Jquery,我有以下脚本,它将从服务器端页面返回的数据显示在客户端页面上: function getResults() { var search; search = $(".txtSearch").val(); $.ajax({ url: 'search.aspx', type: 'POST', data: { strPhrase:search }, error: function(xhr, status, err

我有以下脚本,它将从服务器端页面返回的数据显示在客户端页面上:

function getResults() {
    var search; 
    search = $(".txtSearch").val(); 

    $.ajax({
        url: 'search.aspx',
        type: 'POST',
        data: { strPhrase:search },
        error: function(xhr, status, error)
        success: function(results) 
        { 
            $("#ResultsContainer").empty(); 
            $("#ResultsContainer").append(results); 
        }
    });
}
是否可以在追加结果时检查返回的结果并对其进行更改

例如,假设返回的结果是html,如下所示:

<div><a href="link1.xls">link 1</a></div>
<div><a href="link2.xls">link 2</a></div>
<div><a href="link3.doc">link 3</a></div>
<div><a href="link4.xls">link 4</a></div>

是否可以检查链接中的.doc并删除该链接周围的完整div,只留下以下内容

<div><a href="link1.xls">link 1</a></div>
<div><a href="link2.xls">link 2</a></div>
<div><a href="link4.xls">link 4</a></div>

是,请尝试以下操作:

success: function(results) 
    { 
        var $results = $(results);
        $results.find('a[href$=doc]').parent().remove();
        $("#ResultsContainer").empty().append($results); 
    }
这会将
结果
放在jQuery对象中,将字符串转换为DOM元素

然后它使用来定位嵌套的
doc

然后它遍历到它的元素,然后

请注意,它附加了已修改的
$results
。不是原始的
结果
字符串。

是,请尝试以下操作:

success: function(results) 
    { 
        var $results = $(results);
        $results.find('a[href$=doc]').parent().remove();
        $("#ResultsContainer").empty().append($results); 
    }
这会将
结果
放在jQuery对象中,将字符串转换为DOM元素

然后它使用来定位嵌套的
doc

然后它遍历到它的元素,然后


请注意,它附加了已修改的
$results
。不是原始的
结果
字符串。

我自己没有使用它,但是jQuery.ajax使用了一个
dataFilter
成员,它是一个回调,在
成功
处理程序看到数据之前对数据进行清理


查看文档-

我自己还没有使用过它,但是jQuery.ajax使用了一个
dataFilter
成员,它是一个回调,在
成功
处理程序看到数据之前对数据进行清理


查看文档-

如果您的aspx页面返回一个没有“doc”链接的html片段,即使您以后可以在ajax回调中进行过滤,从性能角度考虑,这会更好


如果您发送一个带有包含url的简单对象的json(到非文档文件)会更好,因为您有很多冗余代码。

从性能角度考虑,如果您的aspx页面返回一个不带“doc”链接的html片段会更好,即使您以后可以在ajax回调中进行过滤

如果您发送一个包含url的简单对象的json(到非文档文件)会更好,因为您有很多冗余代码。

当它们被附加时

您的意思是,当它们从服务器发送到客户机时,我会说可能不会(或者不使用jQuery)。Prototype有一个回调
onInteractive-(不保证),每当请求者收到响应的一部分(但不是最后一部分)时触发,如果它以多个数据包的形式发送。
可能会这样做,但即使如此,也很难处理数据块

如果你说你可以控制发送者,你应该实现一个分页系统:在第一个请求中,服务器脚本返回你,比如说,10个结果和总页数。您可以处理这些结果(如果愿意,可以显示它们),然后请求下一页,依此类推

您还应该通过将筛选条件发送到脚本(如果可能)在服务器上进行筛选。

当它们被附加时

您的意思是,当它们从服务器发送到客户机时,我会说可能不会(或者不使用jQuery)。Prototype有一个回调
onInteractive-(不保证),每当请求者收到响应的一部分(但不是最后一部分)时触发,如果它以多个数据包的形式发送。
可能会这样做,但即使如此,也很难处理数据块

如果你说你可以控制发送者,你应该实现一个分页系统:在第一个请求中,服务器脚本返回你,比如说,10个结果和总页数。您可以处理这些结果(如果愿意,可以显示它们),然后请求下一页,依此类推


您还应该通过向脚本发送筛选条件在服务器上进行筛选(如果可能)。

第一个问题是:您是否可以控制服务器端页面?@alin:您说得对。如果他能在服务器端优化结果,即使是最好的延迟筛选也应该避免。谢谢你同意我的意见,但我认为你这样做的原因是错误的:)。我想知道的是,为了回答他的第一个问题,这里的每个人都回避这个问题,只是回答了简单的问题。我理解,但我的观点是,有时候最好多提一个问题,而不是提出脑海中的第一个解决方案。:)第一个问题是:你能控制服务器端页面吗?@alin:你说得对。如果他能在服务器端优化结果,即使是最好的延迟筛选也应该避免。谢谢你同意我的意见,但我认为你这样做的原因是错误的:)。我想知道的是,为了回答他的第一个问题,这里的每个人都回避这个问题,只是回答了简单的问题。我理解,但我的观点是,有时候最好多提一个问题,而不是提出脑海中的第一个解决方案。:)谢谢,我会尽快试用。谢谢,我会尽快试用。我需要根据客户端计算机上包含的文件筛选结果。是的,我同意json在这里是最好的。我需要根据客户端计算机上包含的文件过滤结果。是的,我同意json在这里是最好的。