jquery:更改div文本

时间:2011-05-03 17:40:08

标签: jquery text html

我想更新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]的文本?谢谢大家!

4 个答案:

答案 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)中来重新评估该元素。

http://api.jquery.com/jQuery.each/