在追加时编辑结果?

osh*_*nen 1 javascript jquery

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

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); 
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

是否可以检查返回的结果是否被追加并对其进行更改?

例如,假设返回的结果是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>
Run Code Online (Sandbox Code Playgroud)

是否有可能检查.DOC中的链接,并删除周围的特定链接,只留下下面的全格?

<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>
Run Code Online (Sandbox Code Playgroud)

use*_*716 5

是的,试试这个:

success: function(results) 
    { 
        var $results = $(results);
        $results.find('a[href$=doc]').parent().remove();
        $("#ResultsContainer").empty().append($results); 
    }
Run Code Online (Sandbox Code Playgroud)

这将放置results在jQuery对象中,将String转换为DOM元素.

然后它使用jQuery的.find()方法来定位<a>href 属性结束的 嵌套元素doc.

然后它遍历到它的.parent()元素,然后调用.remove().

请注意,.append()方法附加了$results已修改的内容.不是原始results字符串.