jquery查找最接近的父级或子级属性

jquery查找最接近的父级或子级属性,jquery,Jquery,我需要找到每个“some data”前面的属性。有什么想法吗 <table> <tr attribute="1"><td>some data1</td></tr> <tr> <td>some data2</td></tr> <tr> <td>some data3</td></tr>

我需要找到每个“some data”前面的属性。有什么想法吗

<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>

一些数据1
一些数据2
一些数据3
一些数据4
一些数据5
一些数据6
一些数据7
一些数据8
一些数据9
一些数据10
一些数据11
一些数据12

使用属性选择器,后跟contains

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

这将遍历DOM,直到它找到一个具有
属性的
父对象


对不起,我不知道你的意思是什么,我需要找到直接位于每个“某些数据”前面的属性。你单击“某些数据”,然后我需要在DOM中向后走,直到我找到一个属性,第一个我找到的属性,就在前面。你能添加一些适当的内容并用示例解释吗?是的,我为一些数据添加了索引。因此,如果我单击“某些数据1、2、3或4”,我想得到.attr()=1。如果我点击'somedata5,6,或7'我想得到.attr()=2等等,请看奇妙的,它的工作原理完全一样。我这样称呼它,对吗:getAttribute($(this.parent(“tr”);
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')
    }
}