Javascript AngularJS-在指令中向dom添加HTML元素
我有一个AngularJS指令,其中添加了一个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 *
为什么会这样
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>');