2016-11-26 68 views
0

我期待改變:使用insertRule通過JavaScript一個導航元素的hover樣式。導航鏈接的背景顏色將根據bgndImgIndex進行更改。這是可能的Javascript或我只是明顯錯了嗎?格式字符串的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的字符串原型存在。我通常使用ES6模板字符串此任務JS,請參閱該工作例子:

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

是的,我做到了,我只是把它留在那裏的什麼,我想實現的例子。這也是我的第一篇文章,所以我一定會做錯事哈哈。 –