2013-07-10 84 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')); 
});