如何获取在ListView JQUERYMOBILE中选择的元素的值

时间:2012-04-25 17:29:01

标签: jquery-mobile

您好我正在开发一个简单的listView,它列出了我的表的“firstname”列:我想获得所选的值(名称),我找到了这个链接,但它显示了他如何获取索引而不是值所选项目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>" );

          } 

1 个答案:

答案 0 :(得分:4)

使用li标签的列表中的项目没有“值”。但是,您可以使用jQuery .text()方法获取该列表元素中的内容。我已经修改了你所引用的jsfiddle:http://jsfiddle.net/Cht2e/

您可能需要考虑向li标记添加另一个属性,例如data-name(您可以组成属性),然后您可以通过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'));
});

我认为这不一定是最好的结构或方法,但它会完成你所要求的。