Jquery选择上一个类

Jquery选择上一个类,jquery,Jquery,我已经尝试过类似的东西,很多其他的变体,大约2个小时…阅读了很多文章,但是找不到我要搜索的内容 我有一个这样的结构: $(“.endTime”).change(函数(){ $(this).previtil('.startTime:first').addClass('pink'); //$(this.prev(“.startTime”).addClass('pink'); //$('.endTime').prev('.startTime').addClass('pink'); //$(this.

我已经尝试过类似的东西,很多其他的变体,大约2个小时…阅读了很多文章,但是找不到我要搜索的内容

我有一个这样的结构:


$(“.endTime”).change(函数(){
$(this).previtil('.startTime:first').addClass('pink');
//$(this.prev(“.startTime”).addClass('pink');
//$('.endTime').prev('.startTime').addClass('pink');
//$(this.prevAll('.startTime:first');
});
.pink{背景色:粉色;}
但我想不出怎么做……输入一些对我不起作用的代码,我尝试了更多的组合

我想要的是:最后我想要从字段endtime和starttime中获取值,addClass只是在那里显示应该发生的事情

非常感谢您的时间和帮助

你需要试一试

$(this).closest('tr').prev().find('.startTime').addClass('pink');
演示:

尝试以下操作:

$(this).closest('tr').prevAll().find('.startTime').addClass('pink');
在这里演奏小提琴:

我希望它能有所帮助。

看看实际的作用:

获取所有前面的兄弟姐妹

您的选择没有兄弟姐妹。它是封闭的
的唯一子级。您需要的是向外遍历DOM到最近的
,获取它以前的同级,然后在内部找到您的

$(this)
    .closest('tr')      // Find ancestor <tr> that is closest, ...
    .prev()             // ... then find its predecessor...
    .find('.startTime') // ... inside that predecessor, find the element with class `startTime` ...
    .addClass('pink');  // ... and finally colour it.
$(此)
.closest('tr')//查找最近的祖先。。。
.prev()/。。。然后找到它的前身。。。
.find('.startTime')/。。。在该前置程序中,找到类为“startTime”的元素。。。
.addClass('pink');/。。。最后给它上色。
我认为如果您稍微整理/缩进HTML标记,它会变得更加清晰:

<tr>
    <td></td>
    <td>
        <select name="startTime[]" class="startTime"></select>
    </td>
</tr>
<tr>
    <td></td>
    <td>
        <select name="endTime[]" class="endTime"></select>
    </td>
</tr>


您能更详细地解释一下这个问题吗?不仅仅是使用$(this)。父类(“.className”)有效吗?您的类嵌套在多个表元素层中,您还必须考虑这些。prevUntil仅适用于同级。因此,在相同的TD中没有开始时间endTime@Fenixp对我不起作用,以前也试过。起作用了…是的,我一直都做错了…谢谢你抽出时间+1和接受。
<tr>
    <td></td>
    <td>
        <select name="startTime[]" class="startTime"></select>
    </td>
</tr>
<tr>
    <td></td>
    <td>
        <select name="endTime[]" class="endTime"></select>
    </td>
</tr>