2016-10-05 7 views
0

私が欲しいのは、Javascriptを使用して特定の要素を隠すことです。具体的には、URLに「cli」というテキストが含まれている場合にのみ、この要素を表示します。私は次のコードを使用してJavaScriptを使用して要素を非表示

var regex = window.location.href; 
 
if(regex.indexOf('cli')>-1){ 
 
$(window).load(function() { 
 
    $("[routerlinkactive]")[1].remove(); 
 
}); 
 
}

routerlnkactive部品がseparatedly動作することを試みました。つまり、if文が記述されていなければ、それは常に削除されます。しかし、私はそのURLでのみ動作するようにしたい。どうすればいい?

はxxx.htmlまたはxxx.htmlでもない作業をしていないように見える?CLI = 30

はありがとうございます。

答えて

2

indexOf()関数を使用してみてください。なので

var regex = window.location.href; 
if(regex.indexOf('cli')>-1){ //if cli is there 
     $("[routerlinkactive]")[1].hide(); //hide 
    } 

見つからない場合は-1を返し、見つかった場合は文字列の位置番号(0から始まる)を返します。

また、非表示にするには.hide()を使用する必要があります。

UPDATE:

あなたはそのまだ機能していないと言っているので、私はちょうどチェックして、これは動作します:

var regex = "xxxxxx.com?cli=50"; 
if(regex.indexOf('cli')>-1){ 
    alert(true); 
}else{ 
    alert(false); 
} 

ので(警告を置き換える)非表示()関数を使用して確認してくださいhtmlは正しく参照されています(あなたはそれが大丈夫であると言っていましたが?)。正規表現の値はwindow.location.hrefである必要があります。 'cli'を追加して削除してみてください。違いがわかります。

+0

動作していないようです。 xxxx.htmlとxxxx.htmlで同じことをしますか?cli = 30 そして、Jqueryのhide()関数が機能していないと思われるので削除を使用しています – user6375350

+0

あなたのコードを問題のあるものに更新してください一見。 –

+0

デバッグに役立つ回答を更新しました。 –

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()

関連する問題