我正在研究动态查询系统。简单地说,用户使用不同的参数进行搜索,并且查询结果会根据这些参数动态变化。我将在表格中显示结果。该系统的一个选项是显示文档(pdfs)。当用户单击文档名称时,将打开pdf文件。以下代码可以正常工作。
function displayResults_document(pElmt) {
var table = pElmt.append("table").attr("class", "result-table");
var tr = table.append("tr").attr("id", "row1");
// Document Name
tr.append("td").append("h4").append("a").attr("href", function (d) {
if (d.attributes.link) {
return d.attributes.link;
} else {
return "#";
}
})
.text(function (d) {
return d.attributes.name;
});
}
查询的其他结果之一是电子邮件。我想要的是,当用户点击电子邮件地址时,Outlook(或其他电子邮件应用程序)打开,点击的地址发送电子邮件。这是我现在所做的(类似上面的代码)。我通过替换%s
function displayResults_email(pElmt) {
var table = pElmt.append("table").attr("class", "result-table");
var tr = table.append("tr").attr("id", "row1");
//Email Queried List
tr.append("td").append("h4").append("a").attr("href", function(d) {
var prefix = "mailto:%s";
var query_results = d.attributes.email1;
var end_result = prefix.replace("%s", query_results);
return end_result;
}).text(function (d){
return d.attributes.email1;
});
}
使用上面的代码,它记录mailto:undefined
我认为我需要将变量作为全局或sth传递?虽然我的几次试验,我不能这样做..任何建议表示赞赏。感谢
答案 0 :(得分:0)
好吧,有时短暂的休息和一点新鲜空气有助于看到小错误。以下代码解决了我的问题。希望别人也能受益..
function displayResults_email(pElmt) {
var table = pElmt.append("table").attr("class", "result-table");
var tr = table.append("tr").attr("id", "row1");
// Email
tr.append("td").append("h4").append("a").attr("href", function (d) {
var prefix = "mailto:%s";
var query_result = d.attributes.email1;
var end_result = prefix.replace("%s", query_result);
return end_result;
}).text(function (d) {
return d.attributes.email1;
});
}