2012-04-25 57 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

相關問題