【发布时间】:2014-04-20 03:12:43
【问题描述】:
我正在尝试为某些对象分配/取消分配类,然后设置某些 CSS 样式,例如活动链接的类,将它们的字体样式设置为“斜体”。
我围绕该功能包装了一个函数,因此我可以在每个具有每个类名的对象上调用它。该函数检查类名是否已经存在于类属性中。如果不是这样,它会附加类名。
以下是一个“输入”,如果父 div 悬停,则应将颜色从灰色(非活动)更改为黑色(活动),触发“overSearch()”。在该函数中,“assignClass()”被调用,超越了“输入”对象和所需的类名。
但是,我收到如下错误:
“无法读取 null 的属性 'innerText'。”
如果我删除“.innerText”,它会说:
“无法读取未定义的属性 'indexof'。”
HTML
<input id="searchbar" type="text" placeholder="http://" spellcheck="false"/>
JAVASCRIPT
var srchBar = document.getElementById('searchbar');
function assignClass(obj, classStr){
var cls = obj.getAttribute('class').innerText;
if ( cls.indexof(classStr) == (-1) ) {
cls += (' ' + classStr);
}
}
function overSearch(){
assignClass(srchBar, 'searchActive');
}
CSS
.searchActive {
color: black !important;
}
我解释错误的尝试是“assignClass()”无法读取“class”属性,因为它(最初)为空。
其他错误来源可能是对 DOM 结构的错误处理。
【问题讨论】:
标签: javascript html css dom