按td标头(使用变量)选择单元格,并使用javascript选择类

Select cell by td headers (using variable) and class using javascript

本文关键字:选择 单元格 javascript 变量 td 标头      更新时间:2023-09-26

问题

我需要通过标题cat_11_18(存储在obj.id中的变量)和类列百分比来选择td,以便提取文本。

<td headers="cat_11_18 row_50_18 percentage" class="level2 leveleven item b1b itemcenter column-percentage">25 %</td>

当前正在尝试:

$('td[headers*="' + obj.id '"].column-percentage').innerText;

演示代码段

$(function () {
  
  var cat = 'cat_11_18';
  
    alert(    $('td[headers*="' + cat + '"].column-percentage').innerText);
});
<td headers="cat_11_17 row_45_18 percentage" class="level1 levelodd oddd1 baggb itemcenter  column-percentage">46 %</td>
<td headers="cat_11_17 row_45_18 average" class="level1 levelodd oddd1 baggb itemcenter  column-average">4</td>
<td headers="cat_11_17 row_45_18 feedback" class="level1 levelodd oddd1 baggb feedbacktext column-feedback">Great</td>
<br/>
<td headers="cat_11_18 row_50_18 percentage" class="level2 leveleven item b1b itemcenter  column-percentage">25 %</td>
<td headers="cat_11_18 row_50_18 average" class="level2 leveleven item b1b itemcenter  column-average">50</td>
<td headers="cat_11_18 row_50_18 feedback" class="level2 leveleven item b1b feedbacktext column-feedback">Rubbish</td>


背景

我正在浏览一个表,从数据中创建一系列图表。有许多类别可通过td标题识别,每个图有两个系列可通过类别识别(学生的成绩,平均成绩)。课程之间的类别可能会发生变化,因此我无法对解决方案进行硬编码。

它成功地找到了所有类别,但我很难只选择适合单个类别的表格单元格。如果我选择只使用类,这是有效的,但这是不合适的,因为无论类别如何,所有信息都会混合。

感谢您的帮助

您想要的是.html()而不是innertext这是FIDDLE

<table border="1">
<td headers="cat_11_17 row_45_18 percentage" class="level1 levelodd oddd1 baggb itemcenter  column-percentage">46 %</td>
<td headers="cat_11_17 row_45_18 average" class="level1 levelodd oddd1 baggb itemcenter  column-average">4</td>
<td headers="cat_11_17 row_45_18 feedback" class="level1 levelodd oddd1 baggb feedbacktext column-feedback">Great</td>
<br/>
<td headers="cat_11_18" class="level2 leveleven item b1b itemcenter  column-percentage">25 %</td>
<td headers="cat_11_18 row_50_18 average" class="level2 leveleven item b1b itemcenter  column-average">50</td>
<td headers="cat_11_18 row_50_18 feedback" class="level2 leveleven item b1b feedbacktext column-feedback">Rubbish</td>
</table>

JS-

$(function () {
  var cat = 'cat_11_18';
    alert(    $('td[headers*="' + cat + '"].column-percentage').html() );
});