標題可能沒有任何意義,所以發生了什麼。我試圖運行一個onclick()
函數,它將交換樣式表以進行視覺更改。我的做法是值href
的一部分。具體來說,我將白色更改爲黑色,以便將href
的值從styles-black.css
更改爲styles-black.css。setAttribute()將函數的文本設置爲href值
我jQuery的,沒有問題這樣做:
$(".onoffswitch").click(function(){
if($('.onoffswitch-checkbox').is(':checked') == false) {
$("#pagestyle").attr('href', function(i, blackCSS) {
return blackCSS.replace('white', 'black');
});
}
});
我不是專家,所以這可能是非常低效的,但我仍然在努力學習。 現在,當我嘗試複製這使用香草JS我得到一些奇怪的結果。首先,這裏是我的代碼:
document.getElementById("pagestyle").setAttribute("href", (function(i,blackCss) {
return blackCSS.replace("white", "black");
}))
我運行它之後,我按照它與document.getElementById('pagestyle').getAttribute('href');
檢查href
的值,以查看功能是否工作,.....這就是我m到處:
"function (i,blackCss) {
return blackCSS.replace("white", "black");
}"
這裏的元素:
<link id="pagestyle" rel="stylesheet" type="text/css" href="function (i,blackCss) { return blackCSS.replace("white", "black"); }">
顯然,我做錯了什麼。奇怪的是,如果我不檢查自己,我會認爲它的工作!款式改變。如果我使用Chrome/IE工具檢查元素,我可以看到styles-black.css的樣式正在被應用!但爲什麼它在元素的屬性中顯示函數呢?那不可能吧?當然,我願意向我展示它是如何完成的。
編輯 這裏的元素的初始狀態:
<link id="pagestyle" rel="stylesheet" type="text/css" href='css/styles-white.css'>
你......不會調用該函數。 'setAttribute(「href」,(function(i,blackCss){blah blah blah;})());'< - missing()那裏。 –
你不能用簡單的JavaScript代替複雜的jQuery方法,並期望它能夠正常工作。你可能想'pagestyle.href = pagestyle.href.replace(「white」,「black」);'或者其他東西。 –