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