首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery中选择具有特定类的父元素?

如何在jQuery中选择具有特定类的父元素?
EN

Stack Overflow用户
提问于 2016-11-15 08:41:14
回答 3查看 454关注 0票数 1

我有以下元素结构。

代码语言:javascript
复制
<ul class="pagination floatRight margin-top-3x margin-right-2x search-pagination-cntr" id="logs_link_pager"><li class="hide disabled"><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db"></a></li>
    <li class="previous disabled"><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db"><span aria-hidden="true" class="p0">« Previous</span></a></li>
    <li class="active"><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db">1</a></li>
    <li class=""><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db/page/2">2</a></li>
    <li class="next"><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db/page/2"><span aria-hidden="true">Next »</span></a></li>
    <li class="hide"><a href="/marketing/videoCall/history/businessID/f1f0e0d3-4e47-ba1a-1d57-5f9d009a41db/page/2"></a></li>
</ul>

现在,我想编写一个单击事件,例如

代码语言:javascript
复制
$('#logs_link_pager a').click(function(ev)

但是,我不希望那些父<a>元素具有activedisabled类的元素的单击事件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-15 08:43:56

您可以在选择器中使用:not

代码语言:javascript
复制
$('#logs_link_pager li:not(.active, .disabled) a').click(function(ev) {
    // your code here...
});

或者,您可以在单击处理程序本身中检查父类。如果动态地更改activedisabled类,这种方法会更好:

代码语言:javascript
复制
$('#logs_link_pager a').click(function(ev) {
    if ($(this).closest('li').is('.active, .disabled')) 
        return;

    // your code here...
});
票数 4
EN

Stack Overflow用户

发布于 2016-11-15 08:49:26

你也可以用.parents()找到父母,

代码语言:javascript
复制
$('#logs_link_pager a').click(function(ev) {

   if ($(this).parents('li').hasClass('active')) 

   // Rest of the code...

});
票数 0
EN

Stack Overflow用户

发布于 2016-11-15 09:11:27

不需要JS删除链接的click event

如果要删除li禁用类或活动的链接的单击,请在css-:

代码语言:javascript
复制
#logs_link_pager li.disabled a,
#logs_link_pager li.active a{
    pointer-events: none;
}

这将禁用父li禁用和活动类的链接。您还可以添加css以突出显示为活动或禁用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40605348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档