我有一个使用导航器本地存储值的脚本,并且我开发了一个向我发送值的网络服务,这里唯一的问题是我不需要它向我发送空结果,这是函数:
function SendNeedHelpLinkTrace() {
var pLinkVirement = sessionStorage.getItem("pClickVirement");
var pLinkCarteBancaire = sessionStorage.getItem("pLinkCarteBancaire");
var pLinkRechargePaiementFactureTelecom = sessionStorage.getItem("pLinkRechargePaiementFactureTelecom");
var pPaiementVignetteImpotTaxe = sessionStorage.getItem("PaiementVignetteImpotTaxe");
var pLinkPaiementFactureEauElectricite = sessionStorage.getItem("pPaiementFactureEauElectricite");
var pLinkServiceFatourati = sessionStorage.getItem("pCatchLinkServiceFatourati");
var pLinkCihExpress = sessionStorage.getItem("pCatchLinkCihExpress");
var pLinkEdocuments = sessionStorage.getItem("pCatchLinkEdocuments");
var lChannelId = "01";
var lServiceId = "900120";
var lClientId = document.getElementById('<%= HiddenClientId.ClientID%>').value;
alert(lClientId);
var lData;
var lCollect;
console.log(lClientId);
lData = pLinkVirement + " | " + pLinkCarteBancaire + " | " + pLinkRechargePaiementFactureTelecom + " | " + pPaiementVignetteImpotTaxe + " | " + pLinkPaiementFactureEauElectricite + " | " + pLinkServiceFatourati + " | " + pLinkCihExpress + " | " + pLinkEdocuments;
console.log(lData);
alert(lData);
lDataCollected = lClientId + ";" + lChannelId + ";" + lServiceId + ";" + lData;
console.log(lDataCollected);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost:9097/CatchEvent.asmx/CollectData",
data: JSON.stringify({ "pData": lDataCollected }),
dataType: "json",
async: true,
success: function (data, textStatus) {
if (textStatus == "success") {
alert('success');
}
},
error: function (exception) {
alert('Exeption : ' + exception);
}
});
sessionStorage.clear();
}
结果是这样的:
空|| 300123 || 900452 ||空||空|| 26332
我应该怎么做才能不显示空结果?
最佳答案
鉴于 lDataCollected
是一个字符串,您可以使用 split() 将其转换为数组轻松制作filter()从数组中排除“Null”值,最后 join()再次创建一个字符串:
var lDataCollected = 'Null || 300123 || 900452 || Null || Null || 26332';
var result = lDataCollected
.split(' || ')
.filter(function(item) {
return item !== 'Null';
})
.join(' || ');
console.log(result);
最终的解决方案:
function SendNeedHelpLinkTrace() {
var pLinkVirement = sessionStorage.getItem('pClickVirement'),
pLinkCarteBancaire = sessionStorage.getItem('pLinkCarteBancaire'),
pLinkRechargePaiementFactureTelecom = sessionStorage.getItem('pLinkRechargePaiementFactureTelecom'),
pPaiementVignetteImpotTaxe = sessionStorage.getItem('PaiementVignetteImpotTaxe'),
pLinkPaiementFactureEauElectricite = sessionStorage.getItem('pPaiementFactureEauElectricite'),
pLinkServiceFatourati = sessionStorage.getItem('pCatchLinkServiceFatourati'),
pLinkCihExpress = sessionStorage.getItem('pCatchLinkCihExpress'),
pLinkEdocuments = sessionStorage.getItem('pCatchLinkEdocuments'),
lChannelId = '01',
lServiceId = '900120',
lClientId = document.getElementById('<%= HiddenClientId.ClientID%>').value,
lData = pLinkVirement + ' | ' + pLinkCarteBancaire + ' | ' + pLinkRechargePaiementFactureTelecom + ' | ' + pPaiementVignetteImpotTaxe + ' | ' + pLinkPaiementFactureEauElectricite + ' | ' + pLinkServiceFatourati + ' | ' + pLinkCihExpress + ' | ' + pLinkEdocuments,
lDataCollectedString = lClientId + ';' + lChannelId + ';' + lServiceId + ';' + lData,
getLDataCollected = function(str) {
var str
.split(' || ')
.filter(function(item) {
return item !== 'Null';
})
.join(' || ');
};
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: 'http://localhost:9097/CatchEvent.asmx/CollectData',
data: JSON.stringify({
'pData': getLDataCollected(lDataCollectedString)
}),
dataType: 'json',
async: true,
success: function(data, textStatus) {
if (textStatus === 'success') {
alert('success');
}
},
error: function(exception) {
alert('Exeption:' + exception);
}
});
sessionStorage.clear();
}
关于javascript - 忽略 Jquery 中的 Null 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39486081/