选择i Inside div jQuery

时间:2014-05-25 22:32:43

标签: php jquery html font-awesome

我有一个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>&nbsp;
        </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!

1 个答案:

答案 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树以执行任何代码。