请教返回加链接

下面代码,如果有值,返回的是一串数字。否则返回“无”。

请问,怎样给返回的值加链接。
返回无的不加链接。

panoService.getPano(evt.latLng, 2000, function(result) {

document.getElementById("pano_id").innerHTML =result?result.svid : "无";

});
阅读 2.6k
4 个回答
document.getElementById("pano_id").innerHTML =result?('<a href="">'+result.svid+'</a>') : "无";

image.png

document.getElementById("pano_id").innerHTML =result&&result.svid?('<a href="">'+result.svid+'</a>') : "无";

image.png

写法和你赋值给pano_id是一样的,只是当是数字时,拼接一个超链接的字符串
'<a href="">'+result.svid+'</a>'

首先,你需要给出你连接的构成方式:

大致是

panoService.getPano(evt.latLng, 2000, function(result) {
document.getElementById("pano_id").innerHTML =result?('<a href="'+result.svid+'">'+result.svid+'</a>') : "无";
});

本来就是一个分支就能解决的问题啊?!@linong 的回复就解决了问题。

只是我不建议拼字符串,还是创建 DOM 元素吧。

当然,如果确认参与创建链接标记的数据,如 svid,只是单纯的数字,拼接字符串也是可以的
panoService.getPano(evt.latLng, 2000, function (result) {
    const svid = result?.svid;
    const el = svid ? createLink(svid) : createEmptySpan();
    document.getElementById("pano_id").appendChild(el);

    function createLink(svid) {
        const link = document.createElement("a");
        link.href = `https://me.com/api/something/${svid}`;
        link.innerText = `${svid}`;
        return link;
    }

    function createEmptySpan() {
        const span = document.createElement("span");
        span.innerText = "无";
        return span;
    }

});

从 svid 创建 <a><span> 这里可以封装成一个函数,方便重用。
另外,如果希望 的时候也是 <a> 可以把两个 createXxxx 合并成一个

function createLink(svid) {
    const link = document.createElement("a");
    if (svid) {
        link.href = `https://me.com/api/something/${svid}`;
        link.innerText = `${svid}`;
    } else {
        link.innerText = "无";
    }
    return link;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏