li属性返回undefined

时间:2013-02-14 00:13:31

标签: jquery html twitter-bootstrap

我的引导页面侧面有一个导航列表,我想在每次单击时获取每个项目的自定义属性的值。我尝试了很多种方法,但我似乎无法弄清楚为什么属性不断返回未定义。

以下是一些示例HTML:

<ul id="list" class="nav nav-list">              
    <li class=""><a href="#" myval="firstValue">Item 1</a></li>
    <li class="active"><a href="#" myval="secondValue">Item 2</a></li>
</ul>

这是jQuery:

$('#list').on('click', 'li:has(a[href^="#"])', function () {
    var currentVal= $(this).attr('myval');
    alert(currentVal);
});

2 个答案:

答案 0 :(得分:4)

您的自定义属性不在LI上。你必须从它的孩子那里得到属性。

var currentVal= $(this).children('a').attr('myval');

答案 1 :(得分:0)

请勿使用myval,而是使用data-myval

<a href="#" data-myval="firstValue">

$("#list").on('click', 'li:has(a[href^="#"])', function () {
    alert($(this).children('a[href^="#"]').data('myval'));
});

另请注意,点击的目标是li:has不会选择任何内容。您也可以通过删除a绑定到:has