2

こんにちは、テーブルの列「firstname」をリストする単純なlistViewを開発しています。選択した値(名前)を取得したいのですが、このリンクを見つけましたが、選択した値ではなくインデックスを取得する方法を示していますアイテムhttp://jsfiddle.net/w2JZU/

ここに私のコードがあります:

HTML:

<div id="popup-bg">
</div>

   <div id="popup-box"> 

   <div data-role="page" id="home">

  <div data-role="header">
    <h1>Players</h1>
   </div>

<div data-role="content">
    <ul data-role="listview" id="artiste" >
    </ul>    
</div>
</div>
</div>
</section>

js:

    function successCB()
  {
     db.transaction(queryDB, errorCB);
   }

      function queryDB(tx)
        {
        tx.executeSql('SELECT * FROM Players ', [], querySuccess, errorCB);
       }

       function querySuccess(tx, results)
         {
          var len = results.rows.length;
           var dataset= results.rows;


         $("#artiste").empty();

          for (var i = 0; i < len; i++)
         {  item = dataset.item(i);
           $("#artiste").append( "<li data-theme='c'><a href='game.html'>
          <img src='images/avatar.jpg'><h3>"+item['firstName']+"</h3></a></li>" );

          } 
4

1 に答える 1

4

li タグを使用したリストのアイテムには「値」がありません。ただし、jQuery .text() メソッドを使用して、そのリスト要素の内容のテキストを取得できます。あなたが参照したjsfiddleを正確に実行するように変更しました:http://jsfiddle.net/Cht2e/

data-name などの別の属性を li タグに追加することを検討してください (属性を作成できます)。その後、jQuery .attr() メソッドを介して取得できます。たとえば、追加するコードを次のように変更できます。

 $("#artiste").append( "<li data-theme='c' data-name='"+item['firstName']+"'><a href='game.html'>
      <img src='images/avatar.jpg'><h3>"+item['firstName']+"</h3></a></li>" );

次に、次のようにクリック ハンドラーをアタッチします。

$('#artiste').children('li').on('click', function () {
   alert('Selected Name=' + $(this).attr('data-name'));
});

これが必ずしも最良の構造やアプローチであるとは思いませんが、あなたが求めていることは達成できます。

于 2012-04-26T01:38:55.303 に答える