我想要的是使用Javascript隐藏某些元素。具体来说,我希望只有在URL包含文本' cli'时才会显示此元素。我尝试使用下一个代码
var regex = window.location.href;
if(regex.indexOf('cli')>-1){
$(window).load(function() {
$("[routerlinkactive]")[1].remove();
});
}

routerlnkactive部分分开工作。也就是说,如果没有写入if语句,则始终将其删除。但我希望这只能用于该URL。我怎么能这样做?
似乎没有使用xxx.html或xxx.html?cli = 30
谢谢。
答案 0 :(得分:2)
尝试使用indexOf()函数。像
这样的东西 var regex = window.location.href;
if(regex.indexOf('cli')>-1){ //if cli is there
$("[routerlinkactive]")[1].hide(); //hide
}
如果找不到则返回-1,如果找到则返回字符串位置编号(从0开始)。
此外,您应该使用.hide()
来隐藏,而不是删除。
更新:
因为你说它仍然无法正常工作,我刚刚检查过,这样做有效:
var regex = "xxxxxx.com?cli=50";
if(regex.indexOf('cli')>-1){
alert(true);
}else{
alert(false);
}
所以用hide()函数替换alert()并确保正确引用html(即使你说它工作正常吗?)。正则表达式的值应为window.location.href
。
尝试添加和删除'cli',你会看到差异。
答案 1 :(得分:0)
Remove()
不是正确的选择,它将从DOM中删除元素。
使用hide()
和show()
。
$(document).ready(function(){
//Hide your element by default on page load
$("[routerlinkactive]")[1].hide();
if(window.location.href.indexOf("cli") > -1) {
//If URL has "cli" then show that element.
$("[routerlinkactive]")[1].show();
}
});