2012-04-25 43 views
2

您好我正在开发一个简单的listView,列出我的表的列“名字”:我想获得选定的值(名称),我发现这个链接,但它显示了他是如何获得索引和所选项目http://jsfiddle.net/w2JZU/如何获取在ListView中选择的元素的值JQUERYMOBILE

这里不是值是我的代码:

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

使用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')); 
}); 

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

+0

非常感谢你这真的显示firstName,但我有一个与HREF标记的问题,它告诉我“错误加载页”,所以我改变了网址,通过替换“href = game.html”通过href =“http ://www.stackoverflow.com/“但问题仍然存在请任何想法。并且非常感谢 – 2012-04-26 07:20:56

+0

我发现这个问题的解决方案适用于任何有类似问题的人:您可以简单地将rel =“external”添加到锚标记中作为属性,这将绕过ajax转换并允许加载页面而不会出现错误。 http://doeswhat.com/2011/03/08/jquery-mobile-error-loading-page/ – 2012-04-26 08:02:01

+1

您也可以从点击处理程序返回false并调用preventDefault或stopPropagation来防止点击事件继续并尝试跟踪链接。 – Todd 2012-04-26 12:32:30

相关问题