2010-04-25 23 views
2

我有一段時間試圖從多個滑塊集合中獲取(我認爲是)一個簡單的索引。該HTML如下:無法從jQuery UI滑塊範圍獲取索引

<div id="left-values" class="line"> 
    <span id="l1" style="padding: 0 1.8em;">0</span> 
    <span id="l2" style="padding: 0 1.8em;">0</span> 
    <span id="l3" style="padding: 0 1.8em;">0</span> 
    <span id="l4" style="padding: 0 1.8em;">0</span> 
    <span id="l5" style="padding: 0 1.8em;">0</span> 
    <span id="l6" style="padding: 0 1.8em;">0</span> 
    <span id="l7" style="padding: 0 1.8em;">0</span> 
    <span id="l8" style="padding: 0 1.8em;">0</span> 
</div> 

而jQuery代碼是:

// setup audiometry sliders 
    $("#eq > span").each(function (e) { 
     // read initial values from markup and remove that 
     var value = parseInt($(this).text()); 
     // var index = $(this).index; <- this didn't work. 

     $(this).empty(); 
     $(this).slider({ 
      value: value, 
      slide: function (event, ui) { 
       //console.log($(this).attr('id')); <- neither did this. 
       //console.log(index); 
       $('#left-values span:first').text(ui.value); 
      } 
     }) 
    }); 

的問題是,jQuery用戶界面 - 創建一個滑塊時 - 替換自己的標記現有的HTML。這包括任何ID值,無論出於何種原因,我都無法獲得指定滑塊的索引。所以我沒有想法了。

回答

2

你可以得到的指數,像這樣:

$("#eq > span").each(function (index, Element) { 
    alert(index); 
    ... 

看到http://api.jquery.com/each/

+2

Un-bloody-believable。我花了太多的時間來討論jQuery UI的東西,我完全忘記了調用函數。有人想讓我失望RTFM?感謝指針。 – 2010-04-25 11:33:41

1

你有什麼工作,也許你有別的事情上。這是一個獨立的樣本,觀看控制檯輸出:http://jsfiddle.net/FBh3a/1/

$("#eq > span").each(function (e) { 
    var value = parseInt($(this).text());  
    $(this).empty(); 
    $(this).slider({ 
     value: value, 
     min: -10, 
     max: 10, 
     slide: function (event, ui) { 
      console.log($(this).attr('id')); //<- works here, outputs l1, l2, etc 
      console.log($(this).index()); //outputs 0, 1 .... 7 (0-based index) 
     } 
    }); 
});​