我是javascript的新用户,但如果它与某个网址上的代码匹配,我会尝试在网页上有条件地显示按钮/链接:
LinkNode = document.getElementById("csv");
var url = document.documentURI
if(document.documentURI.substr(url.lastIndexOf("/"+1)) == "/colleagues"){
LinkNode.style.visibility= "visible";
}
else{
LinkNode.style.visibility= "hidden";
}
任何人都可以建议我做错了什么或如何匹配我的网址结尾" /同事"因为这不匹配?使用正则表达式可能更容易吗?
我如何测试看看document.documentURI.substr(url.lastIndexOf(" /" + 1))实际产生了什么?
答案 0 :(得分:2)
@MattE只需更新您的代码
document.documentURI.substr(url.lastIndexOf("/")) == "/colleagues"
答案 1 :(得分:1)
如果你不需要非常准确,你可以这样使用它:
if (document.documentURI.indexOf("/colleagues") !== -1) {
LinkNode.style.visibility= "visible";
}
else {
LinkNode.style.visibility= "hidden";
}
注意强>
如果存在“/同事”,这将在您的整个URI中找到。这意味着,它不会在域中找到它,因为它具有“/”。但可能是您有“www.domain.com/colleagues/sample”或“www.domain.com/sample/colleagues”,它会在两个案例中输入if
答案 2 :(得分:1)
你可以使用正则表达式匹配:
var urlIndex = url.search("\/colleagues$");
if (urlIndex !== -1) {
LinkNode.style.visibility= "visible";
} else {
LinkNode.style.visibility= "hidden";
}
string.search
方法返回第一个匹配的索引,如果没有匹配则返回-1
。
对于测试,您可以使用几乎每个桌面浏览器中都可用的调试工具,并在要检查的行上设置断点
另一种方法是添加console.log('some text', someValue)
并在浏览器控制台中查看输出