Javascript 如何过滤html ajax响应';在插入到文档中之前,是否删除元素?
我正在使用一个服务器,该服务器以如下形式的HTML响应进行响应: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>
<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);
}