0

我正在使用Flexigrid插件和JQuery。好的,我有一個帶有兩個span元素的div,它們將包含flexigrid提供的按鈕的文本/顯示文本。問題是,除了添加不同的文本之外,沒有任何機制可以將ID添加到這些按鈕。獲得跨度內的文本值

<div class="tdiv2> 
    <div class="fbutton"> 
     <div> 
      <span class="view" style="padding-left: 20px;">Add</span> 
     </div> 
    </div> 
    <div class="fbutton"> 
     <div> 
      <span class="view" style="padding-left: 20px;">Delete</span> 
     </div> 
    </div> 
</div> 

這就是按鈕的排列方式。所以點擊那個按鈕,我得到了跨度內的文本,就像添加和刪除一樣。現在我想爲該範圍添加一個類標記,以區分活動按鈕和另一個按鈕。

所以我想出了這個想法,如果我能得到與正在返回的文本相匹配的跨文本,我可以將該類添加到該跨度。

但是當我做

alert($('.tDiv2 span').html()); 

我只得到了第一跨度的文本,而不是第二個。有人能幫我獲得兩個跨度的html,而不僅僅是第一個。

回答

3

試試這個>

$('.tDiv2 span').each(function(index, el) { alert($(el).html()); }); 
+0

你好,當我嘗試你的代碼,它給了我這個錯誤。 「el.html不是函數」 – macha 2011-04-30 21:32:53

+0

哎呀,我已經糾正了它 – neebz 2011-04-30 21:35:45

+0

它仍然給我同樣的錯誤。我只是查找了jquery文檔,哪一個是集合?我明白功能將是回調。 「jQuery.each(collection,callback(indexInArray,valueOfElement))」 – macha 2011-04-30 21:41:32

0

如果您嘗試從html或文本中獲取屬性,jQuery會自動選擇系列中的第一個元素。獲得第二個(或任意數量的)嘗試:

alert($('.tDiv2 span').eq(1).html()); //returns 2nd element's html content 

您可以在1

0

你需要each替換任何0的索引。

$('.tDiv2 span')each(function(node){ alert(node.html()); });

不過,我想指出的是,這種做法很可能導致屏幕閱讀器的用戶可訪問性問題。如果您絕對必須重新發明按鈕出於某種原因,然後使用ARIA屬性,以便您的盲人訪問者有一些希望得到它的權利。