使用javascript

时间:2016-01-04 12:01:27

标签: javascript jquery html html-table

我试图在同一 tr 中引用与 td 相关的 ,遗憾的是标题和类没有对应,所以我不能只创建另一个.each循环。

我有一个改编这个引用垂直标题但没有成功的answer的游戏。

感谢大家的帮助。

示例行

<tr>
<th id="row_51_18" class="level3 levelodd item b1b column-itemname" colspan="1"><a title="Link to Quiz activity" href="http://virtualmedics.org/mod/quiz/grade.php?id=93&amp;itemnumber=0&amp;userid=18"><img class="icon itemicon" alt="Quiz" title="Quiz" src="http://virtualmedics.org/theme/image.php?theme=vmelegance&amp;amp;component=quiz&amp;amp;image=icon">Acute Appendicitis</a></th>
<td headers="cat_23_18 row_51_18 percentage" class="level3 levelodd item b1b itemcenter  column-percentage">79 %</td>
<td headers="cat_23_18 row_51_18 average" class="level3 levelodd item b1b itemcenter  column-average">65 %</td>
<td headers="cat_23_18 row_51_18 feedback" class="level3 levelodd item b1b feedbacktext column-feedback">&nbsp;</td>
</tr>

的Javascript

$("[id^=cat_]").each(function(i,obj){


var gatherLabels = [];
var gatherValues = [];


$('td[headers*="' + obj.id + '"]').each(function(i, obj) {

    if ($(obj).hasClass("column-percentage")) {
        gatherLabels.push(obj.closest('tr').child('th').innerText); // 'undefined'
        gatherValues.push(obj.innerText.replace('%', '')); // Working fine
    }

});

问题

  1. 如何为每个td
  2. 选择相应的文本
  3. 两次声明obj(在两个.each中)是一件可怕的事情....似乎并不重要

1 个答案:

答案 0 :(得分:3)

鉴于在.each调用中变量obj是一个普通的DOM <td>元素,<th>是封闭<tr>的第一个(元素)子元素{1}}:

var th = obj.parentNode.firstElementChild;

由于th也是一个普通的DOM元素,您可以继续直接访问其innerText属性。