尝试使用文本和HTML来定位字符串

时间:2017-05-18 22:05:01

标签: jquery

我试图在21之后瞄准下面的每个td并隐藏它们。我接下来无法控制输出的HTML。我已经尝试使用indexOf并包含但似乎无法定位特定的字符串。在21之后只有7个td,所以我可以根据需要单独定位每个。

<tr>
<td>19<br /><div class="Content">&nbsp;</div></td>
<td>20<br /><div class="Content">&nbsp;</div></td>
<td>21<br /><div class="Content">&nbsp;</div></td>
<td>1<br /><div class="Content">&nbsp;</div></td>
<td>2<br /><div class="Content">&nbsp;</div></td>
<td>3<br /><div class="Content">&nbsp;</div></td>
<td>4<br /><div class="Content">&nbsp;</div></td>
<td>5<br /><div class="Content">&nbsp;</div></td>
<td>6<br /><div class="Content">&nbsp;</div></td>
<td>7<br /><div class="Content">&nbsp;</div></td>
</tr>

2 个答案:

答案 0 :(得分:0)

使用带有函数的filter重载。该函数获取集合中元素的索引和元素,并且只有在函数返回true时才返回元素。如果你有办法识别那个特定的行,那就更好了(这样就不会删除其他行的单元格),但这里有几种方法:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>19<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>20<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>21<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>1<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>2<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>3<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>4<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>5<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>6<br />
      <div class="Content">&nbsp;</div>
    </td>
    <td>7<br />
      <div class="Content">&nbsp;</div>
    </td>
  </tr>
</table>
<button id="kill">Destroy the rows</button>
    let handler = (<any>window).StripeCheckout.configure({
      key: 'key_test',
      locale: 'auto',
      token: function (token: any) {
        const transaction = new Charge(total, token.id);
        console.log('From navbar nonObject ' + token.id + ' ' + total);
        console.log(transaction + ' From navbar');
        this.keyService.charge(transaction); // The issue is here!
      }
    });

答案 1 :(得分:0)

在纯javascript中(没有给出任何表id或行位置):

// Get row.
var row = document.getElementById('tableId').getElementsByTagName('tr')[0];

// Get all row cells.
var cells = row.getElementsByTagName('td');

// Loop through cells starting with the cell 
// at 3rd position (e.g. 4th cell) and hide them.
for (var c = 3; c < cells.length; c++) {
    var cell = cells[c];
    cell.style.display = 'none';
}

您必须将tableIdtr索引0更改为您拥有的内容。 否则,如果你想在每个tr中隐藏td,那么你也必须遍历tr。