具有以下html结构:
<tr class="invisible">
<td align="center">
<a class="i_edit" data-target="30"></a>
</td>
<td class="category">
<span class="f_type" style="background-image: url(/admin/assets/img/f_type_3.gif);"> Tests </span>
</td>
<td style="background-color: blue;">
<select class="behaviour" name="behaviour" style="opacity: 1;">
<option selected="" value="1" style="opacity: 1;">Por noticias destacadas</option>
<option value="2" style="opacity: 1;">Por fecha</option>
</select>
</td>
</tr>
这是访问内部课程.i_edit
的最佳/最快方式:
$('.behaviour').change(function(){
$(this).closest('.i_edit').css('background-color', 'red'); //doesn't work
$(this).parent().closest('.i_edit').css('background-color', 'red'); //doesn't work
$(this).parent().parent().find('.i_edit').css('background-color', 'red'); //this works
return false;
});
答案 0 :(得分:8)
三者中没有一个。
使用$(this).closest('tr').find('.i_edit')
,因为它可读并且在DOM结构发生变化时仍然有效。
答案 1 :(得分:-1)
首先,做一个.parents('tr.invisible)然后做一个.find('。i_edit')
$('.behaviour').change(function(){
var obj_this = $(this)
obj_this.parents('tr.invisible').find('.i_edit').css('background-color', 'red');
return false;
});
还将$(this)保存到变量中,如果您需要多次使用它。
var obj_this = $(this)