如何在这个td的兄弟姐妹的img上获得类名?

时间:2013-07-17 22:17:00

标签: jquery html css-selectors

http://codepen.io/leongaban/pen/quzyx

嗨,基本上是选择器request - 特定td的行,它在jQuery中点击了一个click事件。

我能够获得与tr上的data-message-id相关联的数字,但是我找不到正确的方法来定位第一个td中图像上的类的名称。


HTML标记:

<table>
<tr data-message-id="101010">
    <td class="table-icon request-row">
        <img class="accepted-icon" src="http://leongaban.com/_projects/whoat/_HTML/img/icon-orange-tick.png" alt="Accepted"/>
    </td>
    <td class="data-name request-row">
        Name
    </td>
    <td class="data-career request-row">
        Title
    </td>
    <td class="data-company request-row">
        Company
    </td>
    <td>Some image goes here<!--Not clickable--></td>
</tr>
</table>

我的jQuery

$(".request-row").unbind('click').bind('click', function () {
    alert('clicked .request-row');

    var $tr = $(this).closest("tr");
    var id = $tr.data('message-id');
    msg_id_incoming = id;
    var userType = $tr.data('type');

    // if accepted then change up the content displayed...
    //var $status = $(this).parent.children('img').attr('class');
    var $status = $(this).siblings('img').attr('class');  
    alert($status);

});


如何在// if accepted then change up the content displayed...注释下重新编写代码,以便在点击类名request-row的td时获取图像上的类名?

我的Codepen:http://codepen.io/leongaban/pen/quzyx

3 个答案:

答案 0 :(得分:4)

一种方法是:

$(this).siblings('td.table-icon').find('img').attr('class');

jsFiddle here.

答案 1 :(得分:0)

var $status = $(this).siblings().first().children('img').attr('class');

答案 2 :(得分:0)

由于你的图像是td,因此不是this的兄弟,你需要选择包含图像的兄弟,然后获取图像:

$(this).siblings('td:has(img)').children('img').attr('class')