javascript - 在元素的父元素的前一个兄弟元素上切换类

标签 javascript jquery css

当单击某些元素时,我想在该元素的父元素的前一个兄弟元素(不是全部,只有一个)上切换一个类,其中该元素还没有特定的类('item')。

HTML:

<tr id="product1">
    <td>Product</td>
    <td>Text</td>
</tr>
<tr class="item" id="sku1">
    <td>SKU</td>
    <td class="valueButton">Button</td>
    <td>Text</td>
</tr>
<tr id="product2">
    <td>Product</td>
    <td>Text</td>
</tr>
<tr class="item" id="sku2">
    <td>SKU</td>
    <td class="valueButton">Button</td>
    <td>Text</td>
</tr>
<tr class="item" id="sku3">
    <td>SKU</td>
    <td class="valueButton">Button</td>
    <td>Text</td>
</tr>

JS:

$(document).on({
    click: function () {
        $('tr', $(this).parent().prev(":not('.item')")).toggleClass('blueChecked');
    }
}, "tr.item td:not('.valueButton')");

最佳答案

使用 .prevAll()并只保留第一个..

$(this).parent().prevAll(':not(.item)').first().toggleClass('blueChecked');

您使用的 prev 仅检查紧接的前一个元素。选择器将针对该元素进行测试,如果匹配则保留它。

演示在 http://jsfiddle.net/UtJPS/

关于javascript - 在元素的父元素的前一个兄弟元素上切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739522/

相关文章:

javascript - 更好地替代对嵌套 dom 对象属性的 typeof 进行多次检查

Javascript 日期时间字符串转 UTC 日期时间和 UTC 转本地日期时间

javascript - 如何在 jquery ui 中将图标放在 Accordion 中

javascript - 如何通过 JQuery 将值替换为 img 标签

html - 导航下拉菜单 CSS

reactjs - 我们如何隐藏div的背景内容?

javascript - 使用正则表达式进行复杂的密码验证

Jquery 滑动切换和追加不起作用

javascript - JQuery 和 HTML : How to use echo $_POST to get data from one form to another

html - 通过CSS向右移动div标签