2016-11-26 3 views
0

insertRuleを使用してJavascriptを使用して:nav要素のホバースタイルを変更しようとしています。ナビゲーションリンクの背景色は、bgndImgIndexに基づいて変更されます。これはJavascriptで可能ですか?それとも間違っていますか?insertRuleの書式文字列javascript文

var bgndImgIndex = 0; 
var colorSelect = ['#ffa800', '#ba2a2a', '#5ad339']; 

var sheet = document.styleSheets[0]; 

sheet.insertRule("a:hover {background:{0} !important".format(colorSelect[bgndImgIndex]), 4); 

答えて

1

これは完全に可能です。問題は、.formatがJSのStringプロトタイプに存在しないということです。私は通常、JSでこのタスクのためにES6のテンプレート文字列を使用し、実施例を参照してください。

var bgndImgIndex = 0; 
 
var colorSelect = ['#ffa800', '#ba2a2a', '#5ad339']; 
 

 
var sheet = document.styleSheets[0]; 
 

 
sheet.insertRule(
 
    `a:hover {background:${colorSelect[bgndImgIndex]} !important` 
 
);
<a>Test</a>

+0

うわーそんなにありがとう。神の霊感を待って何時間も煮詰めているのではなく、ここにきてください。心から感謝する。 –

+0

よろしくお願いします!あなたのブラウザのコンソールで 'format'への無効な呼び出しに関するエラーは表示されませんでしたか? –

+0

ええ、私は、私が達成しようとしていたものの例としてそこに残していました。また、これは私の最初の投稿ですので、何か間違ったことをするつもりでした。 –