jQuery .find()和.animate()

Dan*_*son 1 javascript jquery

我正在做一个温度计,我正在研究温度计的动画.我有这个javascript方法:

function setScoreBar(score) {
    var scoreBar = document.getElementById("dynamicScoreBar");
    // var scoreBar = $(scoreBarElem);
    var height = 250;
    height = height - 20;
    var percentage = height / 100;
    scoreBar.find(".meter").animate({
         marginTop: (height - (score * percentage)) + "px"
    }, 400, function() {
        scoreBar.find(".meter").html(score + "%");
    });
}
Run Code Online (Sandbox Code Playgroud)

我的HTML看起来像这样

<div id="dynamicScoreBar" class="scoreBar">
    <div class="meter">0%</div>
    <div class="red"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我调试它时,我得到的错误表明.find和.animate方法不存在.但是,当我尝试写它时,我从视觉工作室获得帮助,它向我显示使用它的选项,因此它应该存在:P我可以使用其他东西吗?或者我有任何语法错误?

Dav*_*und 5

.find并且.animate是jQuery函数.它们scoreBar是jQuery对象时存在.分配时不是document.getElementById.getElementById是一个纯javascript函数,将返回一个DOM节点.

如果你正在使用jQuery框架,你可以通过包装它将任何DOM节点转换为jQuery对象$(...).对于您的特定方案,您可以完全重写变量赋值:

var scoreBar = $('#dynamicScoreBar');
Run Code Online (Sandbox Code Playgroud)

... scoreBar变量将是一个带有findanimate函数的jQuery对象.