2011-05-03 142 views
0

我想更新div標籤的文本;我第一次用得到這個div的所有者:通過使用螢火蟲jquery:更改div文本

var yTickLabels = $("#flotDiv").find(".yAxis >div"); 

,我可以看到[yTickLabels]獲得兩個孩子的div節點,然後我用下面的代碼更新每個孩子的div節點的文本:

for(var i=0; i<yTickLabels.length;i++){ 
    yTickLabels[i].update("new text"); 
} 

然而,上面的代碼,錯誤失敗「更新是不是一個函數」;然後我嘗試使用html()或text()來檢索當前文本,但仍然失敗。

以何種方式
<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> 

我應該使用更新的每個[DIV]與[Y軸]類的文字:

輸出HTML

,如下這些div顯示?謝謝大家!

+0

你有沒有在#flotDiv下找到任何div?沒有名爲floatDiv的ID – Yasir 2011-05-03 17:44:31

回答

0

當您以這種方式遍歷jQuery數組時,您返回的是實際的DOM元素,而不是jQuery元素,因此它無法訪問jQuery函數。您需要使用.each()以使其保持jQuery本地,或者通過將其包裝在$(element)中來重新評估該元素。

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

3

該錯誤消息是正確的,更新是不是一個函數。

取而代之的是:

for(var i=0; i<yTickLabels.length;i++){ 
    yTickLabels[i].update("new text"); 
} 

使用jQuery,就像這樣:

yTickLabels.each(function(){ 
    $(this).text("new text"); 
}); 
1

這是因爲更新()其實不是一個函數。嘗試更新到這個

for(var i=0; i<yTickLabels.length;i++){ 
    $(yTickLabels[i]).text("new text"); 
} 
+0

這不起作用,'$('selector')[0]'將返回實際的DOM元素,這很可能不會有'.text()' – Robert 2011-05-03 17:46:39

+0

@Robert更正。 – 2011-05-03 17:53:55

1

jQuery提供了每個功能: http://api.jquery.com/each/

嘗試:。

$( 「#flotDiv」)找到( 「Y軸> DIV」)各(函數(索引){ $(this).update(「new text」); });