我的引导页面侧面有一个导航列表,我想在每次单击时获取每个项目的自定义属性的值。我尝试了很多种方法,但我似乎无法弄清楚为什么属性不断返回未定义。
以下是一些示例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);
});
答案 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
。