我想更新div标签的文字;我首先使用以下方式获得此div的所有者:
var yTickLabels = $("#flotDiv").find(".yAxis >div");
通过使用firebug,我可以看到在[yTickLabels]中获得了两个子节点div节点,然后我使用以下代码来更新每个子div节点的文本:
for(var i=0; i<yTickLabels.length;i++){
yTickLabels[i].update("new text");
}
但是,上面的代码失败,错误“更新不是函数”;然后我尝试使用html()或text()来检索当前文本,但仍然失败。
在输出html中,这些div显示如下:
<div class="yAxis y1Axis" style="color:rgb(0, 0, 0)">
<div class="tickLabel" style="position:absolute;text-align:right;top:115px;right:836px;width:0px">
<b>Pavement-Type</b>
</div>
<div class="tickLabel" style="position:absolute;text-align:right;top:178px;right:836px;width:0px">
<b>PCC</b>
</div>
</div>
我应该用哪种方式用[yAxis]类更新每个[div]的文本?谢谢大家!
答案 0 :(得分:3)
错误消息正确,更新不是函数。
而不是:
for(var i=0; i<yTickLabels.length;i++){
yTickLabels[i].update("new text");
}
使用jquery,如下:
yTickLabels.each(function(){
$(this).text("new text");
});
答案 1 :(得分:1)
这是因为update()实际上不是一个函数。尝试将其更新到此
for(var i=0; i<yTickLabels.length;i++){
$(yTickLabels[i]).text("new text");
}
答案 2 :(得分:1)
JQuery提供了每个功能: http://api.jquery.com/each/
尝试:
$(“#flotDiv”)。find(“。yAxis&gt; div”)。each(function(index){ $(this).update(“new text”); });
答案 3 :(得分:0)
当您以这种方式迭代jQuery数组时,您将返回实际的DOM元素,而不是jQuery元素,因此它无法访问jQuery函数。您需要使用.each()
将其保持为jQuery本地,或者通过将其包装在$(element)
中来重新评估该元素。