我有一个div,里面有另一个div,里面包含一个元素i - 一个字体很棒的图标。
<div id="my-div-thispageme">
<a href="/anotherpage" class="div-menu" title="Edit">
<div>
<img style="vertical-align:middle;" src="/images/icon_pngs/icon.png" height="40px" width="40px">
Page Title <i id="settingsico" class="fa fa-cog fa-lg"></i>
</div>
</a>
</div>
我没有运气使用jQuery向i元素(使用id settingsico)添加类'fa-spin'。
我尝试了两种变体:
$("#my-div-thispageme").mouseover(function() {
$("#my-div-thispageme a div i").addClass("fa-spin");
});
和
$("#my-div-thispageme").mouseover(function() {
$("#settingsico").addClass("fa-spin");
});
但总是会出现错误
"Cannot read property 'addClass' of null"
Here is a JSFiddle - though I can't get the font-awesome icon to render!
答案 0 :(得分:2)
您的顶级div
元素看起来像这样:<div id="my-div">
但是,您正在使用选择器#my-div-thispageme
。
您的意思是使用选择器#my-div
吗?
如果是这样,它应该如下:
$("#my-div").mouseover(function() {
$("#settingsico").addClass("fa-spin");
});
由于您遇到的错误,您的代码似乎认为DOM元素不存在。这让我想到你可能在加载DOM之前调用代码,或者你已经动态创建了一些元素。
如果是第一种情况,请确保将所有jQuery代码包装在其中:
$(function() {
// your code here
});
或者,请确保您的所有代码都在 body
的末尾。
第一个等同于$(document).ready()
,第二个等待直到创建DOM树以执行任何代码。