Javascript AngularJS-在指令中向dom添加HTML元素

Javascript AngularJS-在指令中向dom添加HTML元素,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个AngularJS指令,其中添加了一个 为什么会这样 link: function (scope, elem, attrs) { console.log('scope', scope, elem, attrs); var t = elem[0]; var dataperc = attrs.perc, barperc = Math.round(dataperc *

我有一个AngularJS指令,其中添加了一个

为什么会这样

link: function (scope, elem, attrs) {
            console.log('scope', scope, elem, attrs);
                var t = elem[0];
                var dataperc = attrs.perc,
                    barperc = Math.round(dataperc * 5.56),
                    bar = elem.children()[0],
                    label = elem.children()[2];
                bar.animate({width: barperc}, dataperc * 25);
                label.append('<div class="perc"></div>');
                $compile(elem)(scope);

                function perc() {
                    var length = bar.css('width'),
                        perc = Math.round(parseInt(length) / 5.56),
                        labelpos = (parseInt(length) - 2);
                    label.css('left', labelpos);
                    t.find('.perc').text(perc + '%');
                    console.log('perc',t, barperc, dataperc, length, perc, labelpos);

                }
            console.log(t, label, barperc, dataperc);

            perc();
            setInterval(perc, 0);

        }
链接:功能(范围、元素、属性){
日志('scope',scope,elem,attrs);
var t=elem[0];
var dataperc=attrs.perc,
barperc=数学四舍五入(dataperc*5.56),
bar=elem.children()[0],
label=elem.children()[2];
动画({width:barperc},dataperc*25);
标签。附加(“”);
$compile(elem)(范围);
函数perc(){
var length=bar.css('width'),
perc=数学圆(parseInt(长度)/5.56),
labelpos=(parseInt(长度)-2);
label.css('left',labelpos);
t、 查找('.perc').text(perc+'%');
日志('perc',t,barperc,dataperc,length,perc,labelpos);
}
日志(t、标签、barperc、dataperc);
perc();
设置间隔(perc,0);
}
但是像这样

<div class="label">
    <span></span>
    <div class="perc"></div>


但我需要将其添加到span

中,因为
span
标签中,请选择
span
并将代码附加到
span

参考代码:

link: function (scope, elem, attrs) {
            console.log('scope', scope, elem, attrs);
                var t = elem[0];
                var dataperc = attrs.perc,
                    barperc = Math.round(dataperc * 5.56),
                    bar = elem.children()[0],
                    label = elem.children()[2];
                bar.animate({width: barperc}, dataperc * 25);
                // change this line of code.
                label.find("span").append('<div class="perc"></div>');
                $compile(elem)(scope);

                function perc() {
                    var length = bar.css('width'),
                        perc = Math.round(parseInt(length) / 5.56),
                        labelpos = (parseInt(length) - 2);
                    label.css('left', labelpos);
                    t.find('.perc').text(perc + '%');
                    console.log('perc',t, barperc, dataperc, length, perc, labelpos);

                }
            console.log(t, label, barperc, dataperc);

            perc();
            setInterval(perc, 0);

        }
此外,请尝试以下操作:

label.firstElementChild.append('<div class="perc"></div>');
label.firstElementChild.append(“”);

您能告诉我们您的html代码在何处使用指令吗?TypeError:label.children不是您在这里使用jQuery的函数,还是纯javascript元素?是的,您上次的报价有效,非常感谢,您还可以帮助我吗?如何引用,var length=bar.css('width'),未能执行'animate',请尝试
bar.animate({width:barperc},parseInt(dataperc)*25)
label.firstElementChild.append('<div class="perc"></div>');