2017-02-21 104 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>

相关问题