[英]Edit returned results before appending on screen
我有以下脚本,需要以某种方式将它们组合在一起。 目前,每个功能都可以单独工作。
// Check if file exists clientside
function FileExists(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
FileExist = fso.FileExists(path);
if (FileExist == true){
return true
} else {
return false
}
}
// Get links from database
function getSearchResults() {
var search;
search = $(".txtHeaderSearch").val();
$.ajax({
url: 'results.aspx',
type: 'POST',
data: { strPhrase:search },
success: function(results) {
// Need to somehow stop the .exe links from appearing on screen if FileExists == false
$("#divSearchResults").empty().append(results);
}
});
}
// The returned data looks something like this
<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>
如果有问题的exe文件在客户端计算机上不存在,是否可以通过某种方式将FileExists函数与ajax成功函数集成在一起,以防止.exe链接出现在客户端屏幕上?
编辑1:以下是给我一个对象,不支持此属性或方法错误:
success: function(results)
{
results.find('a[href$=".exe"]').each(function(){
if (FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append(results);
}
编辑2:不再给出错误,但也不会删除不存在的exe文件。
success: function(results)
{
$(results).find('a[href$=".exe"]').each(function(){
if (FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append(results);
}
编辑3:这也不起作用。
success: function(results)
{
var $results = $(results);
$results.find('a[href$=".exe"]').each(function(){
if (! FileExists(this.href)) {
$(this).parent().remove();
}
});
$("#divSearchResults").empty().append($results);
}
您可以这样做, 属性以选择器结尾
$(results).find('a[href$=".exe"]').parent().remove();
根据我的经验,有时这条线是行不通的。 如果您也遇到这种情况,请执行此操作,
var results = $('<div>').html(results).find('a[href$=".exe"]').parent().remove();
results = results.html();
那么您的结果现在将与此相关,
<div><a href="link1.xls">link 1</a></div>
<div><a href="link3.doc">link 3</a></div>
<div><a href="link4.aspx">link 4</a></div>
已更新以下评论。
$(results).find('a[href$=".exe"]').each(function(){
if (! FileExists(this.href)) { // uses href as the path...
$(this).parent().remove();
}
});
答案是在每行中都包含一个跨度。 出于某种原因...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.