jQuery仅选择具有相同ID的一个(除一个)

时间:2019-04-12 17:41:56

标签: javascript jquery

让我们假设我有5个div,其ID为#job1,#job2,#job3,#job4,#job5。我想使用jquery来隐藏所有这些,但要说div ID为#Job2的那个。是否有任何选择器语法可以让我应用于除#job2之外的所有这些ID?

2 个答案:

答案 0 :(得分:6)

当然可以!有几种方法可以做到这一点;以下是结合jQuery的Attribute Starts With SelectorAttribute Ends With Selector:not() Selector的示例:

$("[id^='job']:not([id$='2']").hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="job1">job1</div>
<div id="job2">job2</div>
<div id="job3">job3</div>
<div id="job4">job4</div>
<div id="job5">job5</div>

正如您对问题的评论中所讨论的那样,这可能不是完成此任务的最理想方法-类可能是针对这些元素中每个元素的更可靠的方法。

答案 1 :(得分:4)

与其使用复杂的选择器,不如将共享的类名放在所有元素上并将其用作选择器,可能会更好:

.box {
  height: 20px;
  background: khaki;
  width: 100px;
  text-align:center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box A B F  R W Q">Has Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R">No Q</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B F W R M">Has M</div>
<div class="box A B F H K F">No Q</div>
<div class="box A B Q F H  M K F">Has Q & M</div>