Javascript 如何过滤html ajax响应';在插入到文档中之前,是否删除元素?

Javascript 如何过滤html ajax响应';在插入到文档中之前,是否删除元素?,javascript,html,jquery,ajax,Javascript,Html,Jquery,Ajax,我正在使用一个服务器,该服务器以如下形式的HTML响应进行响应: <div> <table> <thead> <tr> <th>Name</th> <th>Country</th> </tr> </thead> <tbody> <tr> <td>John Doe</td>

我正在使用一个服务器,该服务器以如下形式的HTML响应进行响应:

<div>
<table>
  <thead>
    <tr>
    <th>Name</th>
    <th>Country</th>
  </tr>
  </thead>
  <tbody>
    <tr>
      <td>John Doe</td>
      <td>USA</td>
    </tr>
    <tr>
      <td>James Doe</td>
      <td>Canada</td>
    </tr>
     <tr>
      <td>Jonas Doe</td>
      <td>UK</td>
    </tr>
  </tbody>
</table>
</div>

您可以先隐藏
t正文
中的所有
trs
,然后使用
filter
仅显示包含数据的行,即:
USA

演示代码

var模拟响应=
“姓名国家约翰·杜尤萨詹姆斯·杜卡纳达·乔纳斯·杜尤克乔纳斯·杜尤克”
函数processResponse(html){
var$html=$(html);
//将所有TR隐藏在车身内
$html.find(“tbody tr”).hide();
//滤光片
$html.find(“tbody>trtd”).filter(函数(){
//检查td中的值是否为美国
返回$(this).text().indexOf(“USA”)==0;
}).parent().show();//显示tr
$(“#响应”).html($html);
}
//句柄单击并添加类
变量按钮=$(“按钮”);
按钮。在(“单击”、()=>{
$(“#响应”).html(“”);
/*$.ajax({
方法:“张贴”,
url:“/echo/html/”,
数据:模拟响应
})
.完成(处理响应)*/
//调用函数
processResponse(模拟响应);
})

执行搜索

您的意思是需要删除其他没有值的
tds
?对于tbody,我只需要第二个单元格中有USA的行。JSFIDLE现在有一个包含预期结果的部分。
function processResponse(html){
  var $html = $(html);
  //perform filtering here
  //I only want elements from USA
  $html.filter(function(index, element){
    return true;
  });
  $("#response").html($html);
}