使用JavaScript隐藏元素

时间:2016-10-05 10:37:28

标签: javascript jquery html css

我想要的是使用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

谢谢。

2 个答案:

答案 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();
    }
});

Reference of indexOf()