我有一个表格,其中每行包含几个评级,其中5个在采取某个操作时需要消隐,然后在采取另一个操作时将原始评级放回。我已将原始单词存储在数据中,因此我在HTML中的原始行看起来像这样。
echo "<td data-Rating = $Rating class = 'outfieldlineuprating'>$Rating</td>";
在我的JS中,我发现所有带有'outfieldlineuprating'的元素都是这样的..
SkillRatings = PlayerRow.find('.outfieldlineuprating');
到目前为止(PlayerRow很好)。我知道它有效,因为在采取第一个动作(即消隐元素)时,它适用于..
SkillRatings.html('----');
这将----在所有5个元素中加上'outfieldlineuprating'类。然而,扭转它,我正在努力。此时'SkillRatings'可能包含某些相关td的数组,但我不知道如何遍历它,提取数据并将其插入到html中。这是我正在尝试但这在JS中不起作用。
for (var index = 0; index < SkillRatings.length; index++){
Rating = SkillRatings[index].attr('data-Rating');
SkillRatings[index].html(Rating);
}
这只是错误:SkillRatings [index] .attr不是函数
答案 0 :(得分:3)
您正在使用jQuery,SkillRatings = PlayerRow.find('.outfieldlineuprating');
创建一个包含这些元素的jQuery对象。
SkillRatings[index]
返回一个实际元素,而不是该元素的jQuery对象
您需要将SkillRatings[index].jQueryMethod()
更改为
SkillRatings.eq(index).jQueryMethod();
// or
$(SkillRatings[index]).jQueryMethod();
然而,使用SkillRatings.each
将this
作为循环中的当前元素公开
而不是使用for
循环尝试
SkillRatings.each(function(){
// "this" is current element
$(this).html( $(this).data('Rating'));
});