jquery找到前父或其兄弟姐妹的最近属性

时间:2014-03-01 01:14:52

标签: jquery

我需要找到直接在每个“某些数据”之前的属性。有什么想法吗?

<table>
  <tr attribute="1"><td>some data1</td></tr>
  <tr>              <td>some data2</td></tr>
  <tr>              <td>some data3</td></tr>
  <tr>              <td>some data4</td></tr>

  <tr attribute="2"><td>some data5</td></tr>
  <tr>              <td>some data6</td></tr>
  <tr>              <td>some data7</td></tr>

  <tr attribute="3"><td>some data8</td></tr>
  <tr>              <td>some data9</td></tr>
  <tr>              <td>some data10</td></tr>
  <tr>              <td>some data11</td></tr>
  <tr>              <td>some data12</td></tr>
</table>

2 个答案:

答案 0 :(得分:0)

使用属性选择器后跟包含。

$('tr[attribute] td:contains("some data")').each(function() {
   var attrValue = $(this).parent().attr('attribute');
});

http://jsfiddle.net/6Ctzk/

答案 1 :(得分:0)

这会遍历DOM,直到找到parent attribute为止。

http://jsfiddle.net/u24cH/3/

function getAttribute($parent){
    if($parent.index() !== 0) {
        if($parent.attr('attribute')) {
            return $parent.attr('attribute')
        } else {
            return getAttribute($parent.prev());
        }
    } else {
        return $parent.attr('attribute')
    }
}