程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将 $(this) 选择器与 [attribute*=value] 混合

发布于2023-03-24 16:20     阅读(879)     评论(0)     点赞(0)     收藏(2)


我一直在挖掘文档和论坛以找到混合两种选择器的方法,但我没有。我只知道如何选择所有元素[attribute*=value](例如$("[attribute*='value']"):),或来自同一类型的所有 HTML 元素(例如:$("input[name*='value']")。如何选择类似$("$(this)[name*='value']").

编辑:

在本例中,我使用的是选择器 .class。但只是为了举例。我需要选择两个“更多床”按钮。但是“更多”类的所有按钮都在触发警报。

$(".more").click(function() {
  if ($(".more").filter('[name*=bed]')) {
    alert("bed")
  }
});
button {
  width: 100px;
  height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button class="more" name="bed-test">more-bed</button>
<button class="more" name="bed-check">more-bed</button>
<button class="less" name="bed-test">less-bed</button>


解决方案


您可以使用not()

$('[name=bed-test]').not('.less').on('click', () => console.log('yay'))
button {
  width: 100px;
  height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="more" name="bed-test">more-bed</button>
<button class="less" name="bed-test">less-bed</button>
<button class="more" name="bath-test">more-bath</button>

您也可以使用filter()

$('.more').on('click', e => $(e.currentTarget).filter('[name=bed-test]').css('width', '300px'))
button {
  width: 100px;
  height: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="more" name="bed-test">more-bed</button>
<button class="less" name="bed-test">less-bed</button>
<button class="more" name="bath-test">more-bath</button>




所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/516813/ce29a8abd24c4d80c7ba/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)