我试图在同一 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&itemnumber=0&userid=18"><img class="icon itemicon" alt="Quiz" title="Quiz" src="http://virtualmedics.org/theme/image.php?theme=vmelegance&amp;component=quiz&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"> </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
}
});
问题
答案 0 :(得分:3)
鉴于在.each
调用中变量obj
是一个普通的DOM <td>
元素,<th>
是封闭<tr>
的第一个(元素)子元素{1}}:
var th = obj.parentNode.firstElementChild;
由于th
也是一个普通的DOM元素,您可以继续直接访问其innerText
属性。