javascript - 按属性查找最接近的元素

标签 javascript jquery

我有这个投票片段,我想将禁用类添加到用户按下的按钮之外的其他按钮。例如,如果用户在 id 1 帖子上投票 +,则 - 按钮将获得禁用类,但 id 2 则不会。

<span class="pull-right">
              <a href="javascript:void(0)" class="vote" data-id="1" data-type="up">+</a>
              <span id="votes-1">0</span>
              <a href="javascript:void(0)" class="vote" data-id="1" data-type="down">-</a>
</span>
<span class="pull-right">
              <a href="javascript:void(0)" class="vote" data-id="2" data-type="up">+</a>
              <span id="votes-2">0</span>
              <a href="javascript:void(0)" class="vote" data-id="2" data-type="down">-</a>
</span>

我已经尝试了很多东西,比如 .closest().find() 但我无法让它工作。

最佳答案

  1. 向上遍历到被点击的 .vote 元素的父元素。
  2. 使用.not()this 排除被点击的 .vote 元素。

$('.vote').click(function() {
  var parent = $(this).parent();
  $(this).removeClass('disabled');
  parent.find('.vote').not(this).addClass('disabled');
});
.disabled {
  background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<span class="pull-right">
              <a href="javascript:void(0)" class="vote" data-id="1" data-type="up">+</a>
              <span id="votes-1">0</span>
<a href="javascript:void(0)" class="vote" data-id="1" data-type="down">-</a>
</span>
<span class="pull-right">
              <a href="javascript:void(0)" class="vote" data-id="2" data-type="up">+</a>
              <span id="votes-2">0</span>
<a href="javascript:void(0)" class="vote" data-id="2" data-type="down">-</a>
</span>

关于javascript - 按属性查找最接近的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176038/

相关文章:

javascript - 尽快执行 javascript 的最早的基于 javascript/jquery 的方法是什么?

javascript - 使用 React js 创建一个基本的表格计算器

javascript - 阻止 Firefox 将文本节点添加到 contentEditable div(Firefox bug?)

javascript - 检查链接是否为图片

javascript - 创建自定义对象文字

javascript - 在给定日期上添加两个小时

javascript - jQuery手动调用点击函数

jquery - 修改属性值

javascript - 在图像加载时删除背景图像

javascript - 如何使用 jQuery 使用其值设置放置在 <tr> 标记内的下拉值