2017-02-21 17 views
2

htmlページのspan要素のテキストの色、フォントサイズ、およびフォントの太さを変更したいと思います。私は次のコードを使用してい未定義のプロパティ 'style'を読み取ることができません - キャッチされていない型エラー

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"; 
} 

以下は、私がIDによる要素が、残念ながら、彼らだけのクラスなしのIDを取得すると思った私のhtmlページのコード

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

です。私は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

そのコードは機能します。あなたが探しているもの:あなたが望むif条件がありますか?あなたのコードの他の場所でプロパティ 'スタイル'を読んでいますか?コードが失敗する箇所はありますか? – Bruno

答えて

3

あなたを追加<script><body>の末尾に追加するか、のイベントリスナーを追加してください0 this StackOverflow questionに続く0。

このスクリプトがコードの<head>セクションで実行される場合、document.getElementsByClassName(...)はDOMがまだロードされていないため空の配列を返します。

search_span[0]を参照しているため、Type Errorが届いていますが、search_span[0]undefinedです。

DOMが既にロードされているため、これはDev Toolsで実行すると機能します。

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>

関連する問題