2013-07-10 87 views
3

我在jQuery Mobile手風琴中有一堆虛擬鏈接。通過虛擬鏈接,我的意思是說,href只是「#」。該列表由另一個函數動態創建,並通過使用value屬性將值存儲在元素中。一個循環寫入這樣的列表獲取點擊鏈接的值

'<li value="' + result.ID + '"><a href="#">' + result.Name + '</a></li>'  

我在點擊鏈接時遇到了麻煩。我目前正在使用此事件處理

$(document).on('click', '#openCallsList li a', function() { 

}); 

當一個鏈接被點擊我要與它關聯的值,所以我可以從數據庫中抓取一些數據(我知道如何做到這一點),然後創建一個對話框窗口(我也知道該怎麼做)。我只是失去了如何獲得我與鏈接存儲的價值。

回答

6

這將工作:

$(document).on('click', '#openCallsList li a', function() { 
    console.log($(this).closest('li').attr('value')); 
}); 
+0

原諒我的無知,但我在哪裏找到日誌,看看它是否工作正常。 – Matt

+0

要查看控制檯,您需要在Safari,Firefox或Chrome中啓動Web檢查器。不知道哪裏可以在IE中獲得它。 – jrthib

+0

在IE的更高版本中,您可以使用F12來獲取控制檯。 – techfoobar

3

雖然你可以從<li>標籤搶value屬性,這是無效的HTML。 value屬性已被棄用。

此屬性在HTML 4.01中已被棄用。因此不再推薦使用它。

來源:http://www.htmlquick.com/reference/tags/li.html#value

我的建議是將其更改爲這樣的事情:

'<li id="' + result.ID + '"><a href="#">' + result.Name + '</a></li>' 

然後用

$(document).on('click', '#openCallsList li a', function() { 
    var value = $(this).parent().attr('id'); 
    // or you could use the closest('li') function too. 
}); 
+0

啊,謝謝我不知道價值已被棄用。 – Matt

1

這裏是全碼:

HTML代碼:

<ul id ='openCallsList'> 
    <li value='12'><a href="#">12</a></li> 
    <li value='13'><a href="#">13</a></li> 
    <li value='14'><a href="#">14</a></li> 
    <li value='15'><a href="#">15</a></li> 
</ul> 

Java腳本代碼:

$(document).on('click', '#openCallsList li a', function() { 
    alert($(this).parent().attr('value')); 
});