从嵌套的 LI 中选择自定义属性
Select Custom Attribute from nested LI
我有一个如下所示的菜单项,现在在这种情况下,我有一个groupId=5
的父项,即分析。现在我要做的是,当我单击LI时,我想选择link-id
...现在我可以轻松地工作。
没有问题,我如何选择link-id="22"
和link-id="23"
不触发link-id=21
因为在这种情况下link-id=21
是另一个子菜单。
.HTML
<li groupid="5">
<a href="#">
<i class="fa fa-line-chart"></i>
<span class="nav-label">Analytics</span>
<span class="fa arrow"></span>
</a>
<ul sub-groupid="5" class="nav nav-second-level">
<li link-id="13"><a href="#">Overview</a></li>
<li link-id="19"><a href="#">Social Report Card</a></li>
<li link-id="20">@Html.ActionLink("Reputation Report Card", "ReputationReportCard", "Reports", new { area = "Analytics" }, null)</li>
<li link-id="21">
<a href="#">
<span class="nav-label">Facebook Snapshot</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-third-level">
<li link-id="22">@Html.ActionLink("Overview", "Index", "Overview", new { area = "Analytics" }, null)</li>
<li link-id="23">@Html.ActionLink("Content", "Index", "Content", new { area = "Analytics" }, null)</li>
</ul>
</li>
</ul>
</li>
选择链接
$("ul[sub-groupid] > li").click(function (e) {
NavigationMenu.App.SetLinkId($(this).attr('link-id'));
});
所以简而言之,我希望能够选择link-id
但如果link-id
有一个子菜单,我想选择子菜单的链接ID
您可以对[sub-groupid]
元素使用单击处理程序,然后找到最接近单击元素的li
,然后获取其link-id
$("ul[sub-groupid]").click(function(e) {
alert($(e.target).closest('li[link-id]').attr('link-id'));
NavigationMenu.App.SetLinkId($(e.target).closest('li[link-id]').attr('link-id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li groupid="5">
<a href="#">
<i class="fa fa-line-chart"></i>
<span class="nav-label">Analytics</span>
<span class="fa arrow"></span>
</a>
<ul sub-groupid="5" class="nav nav-second-level">
<li link-id="13"><a href="#">Overview</a></li>
<li link-id="19"><a href="#">Social Report Card</a></li>
<li link-id="20">@Html.ActionLink("Reputation Report Card", "ReputationReportCard", "Reports", new { area = "Analytics" }, null)</li>
<li link-id="21">
<a href="#">
<span class="nav-label">Facebook Snapshot</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-third-level">
<li link-id="22">@Html.ActionLink("Overview", "Index", "Overview", new { area = "Analytics" }, null)</li>
<li link-id="23">@Html.ActionLink("Content", "Index", "Content", new { area = "Analytics" }, null)</li>
</ul>
</li>
</ul>
</li>
</ul>
我想你应该使用它:
$("ul[sub-groupid] li").click(function (e) {
var lid = $(this).has('ul')
? $(this).find('li').attr('link-id')
: $(this).attr('link-id');
NavigationMenu.App.SetLinkId(lid);
});
$("ul[sub-groupid] li").click(function (e) {
e.stopPropagation();
alert($(this).attr('link-id'))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li groupid="5">
<a href="#">
<i class="fa fa-line-chart"></i>
<span class="nav-label">Analytics</span>
<span class="fa arrow"></span>
</a>
<ul sub-groupid="5" class="nav nav-second-level">
<li link-id="13"><a href="#">Overview</a></li>
<li link-id="19"><a href="#">Social Report Card</a></li>
<li link-id="20">@Html.ActionLink("Reputation Report Card", "ReputationReportCard", "Reports", new { area = "Analytics" }, null)</li>
<li link-id="21">
<a href="#">
<span class="nav-label">Facebook Snapshot</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-third-level">
<li link-id="22">@Html.ActionLink("Overview", "Index", "Overview", new { area = "Analytics" }, null)</li>
<li link-id="23">@Html.ActionLink("Content", "Index", "Content", new { area = "Analytics" }, null)</li>
</ul>
</li>
</ul>
</li>
相关文章:
- 设置自动分隔符的自定义属性
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 获取自定义属性的值
- 如何创建自定义属性以添加if.bind
- 动态更新Angular2指令中自定义属性的值
- Meteor:选择自定义javascript和自定义css作为模板
- 使用jQuery更改输入字段的自定义属性
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 是否可以在 Polymer 中的
节点上使用自定义属性以获得漂亮的 API - 为什么克隆节点排除自定义属性
- 将自定义属性添加到 vuejs 组件
- jQuery 选择
,自定义属性包含“:” - 从嵌套的 LI 中选择自定义属性
- 使用带有下拉选择的自定义属性jQuery选择器(取2)
- 使用带有下拉选择的自定义属性jQuery选择器
- 使用jquery日期选择器向日期添加自定义属性
- 如何添加自定义属性动态选择选项,以及如何获取它使用javascript或dojo
- jQuery选择器自定义属性
- 从 javascript 中的自定义属性中选择一个值