2017-02-21 125 views
2

我想更改html頁面的span元素中文本的顏色,字體大小和字體重量。無法讀取未定義的屬性「樣式」 - 未捕獲類型錯誤

我使用下面的代碼:

if(window.location.href.indexOf("test") > -1){ 
    var search_span = document.getElementsByClassName("securitySearchQuery"); 
    search_span[0].style.color = "blue"; 
    search_span[0].style.fontWeight = "bold"; 
    search_span[0].style.fontSize = "40px"; 
} 

以下是我的html頁面

<h1 class="keyword-title">Search results for<span class="securitySearchQuery"> "hi".</span></h1> 

我覺得過得去的id元素的代碼,但不幸的是他們只類和無標識。我沒有權限修改html代碼,只是在外部添加js代碼到網站。

我試圖查看其他stackoverflow帖子,但可以找到解決方案。 我是js和css的新手,請告訴我哪裏錯了。

This is the screenshot of the error which I am getting in Chrome browser

+1

當我在這裏嘗試時有效:https://jsfiddle.net/du2ot93e/ - 我認爲你的if語句失敗。 –

+0

你是否達到'if'語句? – piotrbienias

+0

該代碼有效。你應該尋找的東西:是否有你想要的條件?您是否在代碼的其他位置閱讀了「樣式」屬性?代碼出現在哪裏? – Bruno

回答

3

加入您的<script><body>的底部,或者爲添加事件偵聽器0關注this StackOverflow question

如果該腳本在<head>代碼部分執行,document.getElementsByClassName(...)將返回一個空數組,因爲DOM尚未加載。

你得到的Type Error,因爲你參考search_span[0],但search_span[0]undefined

由於DOM已經加載,所以在開發工具中執行它時,它將起作用。

0

它目前的工作,我只是改變了運營商>要想在片段上班,一起來看看:

window.onload = function() { 
 

 
    if (window.location.href.indexOf("test") <= -1) { 
 
    var search_span = document.getElementsByClassName("securitySearchQuery"); 
 
    search_span[0].style.color = "blue"; 
 
    search_span[0].style.fontWeight = "bold"; 
 
    search_span[0].style.fontSize = "40px"; 
 

 
    } 
 

 
}
<h1 class="keyword-title">Search results for<span class="securitySearchQuery"> "hi".</span></h1>

相關問題