2011-12-20 10 views
3

を取得します。私は生成http://jqueryui.com/demos/selectable/私はjQueryのUIの選択可能なリストを持っているのjQuery UI選択のデータ属性

各行は次のようになります固有のIDがあります。私がする必要がどのような

<ol id="selectable"> 
    <li class="ui-widget-content" data-userid="5">test</li> 
    <li class="ui-widget-content" data-userid="6">adfsg</li> 
    <li class="ui-widget-content" data-userid="7">ghj</li> 
    <li class="ui-widget-content" data-userid="8">fhjk</li> 
    <li class="ui-widget-content" data-userid="9">fhn</li> 
</ol> 

ことをループでありますそのリストを選択し、選択されたもののdata-userid属性値を取得します。

私のJSはこれまでのところですちょうどこの:私はconsole.log(ui.selected)をすれば、私は全体のHTML文字列を取得

$('#selectable').selectable().bind("selectableselected",function(event,ui) 
{ 

}); 

。私はこれについて間違った方法をとっていると思う。何か案は?選択した項目のクラスは、UI-選択されることになると仮定すると、

答えて

2

:それは選択した項目を取得するために非常に簡単ですので、

$('#selectable .ui-widget-content.ui-selected').each(function(index) { 
    alert($(this).attr('data-userid')); 
}); 
+0

現在、すべてのユーザーIDを取得していますが、非常に近いです! – Ronnie

+0

私の更新を試して、選択したクラスがチェックアウトしていることを確認してください。 –

+0

うん、それはすばらしい、ありがとう! – Ronnie

3

プラグインは、選択した項目のための.ui-selectedクラスを追加します。

var ids = $('#selectable .ui-selected').map(function() { 
    return $(this).data('userid'); 
}); 

// to get a pure javascript array 
ids.toArray(); 

はここでプレーするfiddleです:

.map()機能は、データを返すために、コールバックで(ソートの)配列を返すことができます。

+0

私はいくつかのCSSとより役に立つアラートをフィディルドに追加しました。 –

+0

ありがとう、あなたの方法も同様に動作します – Ronnie

関連する問題