作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 each() 函数,每次类出现在表中时,它都会获取该部分中的信息。
它正在执行 x3 循环,但我要求的信息仅来自第一个实例。
<td class="approved_player">
<span first_role="1" role="Damage" class="icon_damage"></span>
<a class="class_monk">Sickli</a>
</td>
读取信息后,它会更新 json 数组 1 是否损坏。
var classes = {
classes: [{
"mage": 0
}, {
"warlock": 0
}, {
"rogue": 0
}, {
"paladin": 0
}, {
"deathknight": 0,
"deathknight damage": 0
}, {
"monk": 0,
"monk damage": 0
}, {
"priest": 0,
"priest damage": 0
}, {
"druid": 0,
"druid damage": 0
}, {
"shaman": 0,
"shaman damage": 0
}]
};
$("td.approved_player").each(function (i, obj) {
var player = $("a[class^='accountLink class_']").attr('class').split('_')[1];
var role = $("span[first_role='1']").attr('role').toLowerCase();
$.each(classes, function (key, data) {
$.each(data, function (index, data) {
if (player == data) {
if (role == 'damage') {
data[1] = 1;
} else {
data[0] = 1;
}
}
});
});
$("div#output").append(i + ' appoved class ' + player + ' role ' + role + '<br/>');
});
$.each(classes, function (key, data) {
$.each(data, function (index, data) {
console.log('index', data);
});
});
我正在处理这个问题:http://jsfiddle.net/EXwsy/1/
感谢您的帮助。
最佳答案
我发现了一个错误
在这里您将数据对象与播放器的字符串进行比较
if (player == data)
我将其更改为:
if (Object.keys(data)[0] == player)
在这种情况下,您将比较“僧侣”和您对象的第一个属性是法师。
这也将检索 3 个元素
$("td.approved_player")
但是在你的每个循环中你得到一个这样的元素但是它会检索 3 个元素
$("a[class^='accountLink class_']")
这还将检索 3 个元素,您始终在第一个元素上工作。
使用它您将检索当前元素。
$(this).children("a").attr('class').split('_')[1]
Here我认为工作 fiddle 很好。
请记住,jQuery 可以从所需的选择器中检索多个 DOM 对象。
关于javascript - Jquery each() 类,只获取该循环中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261698/
我是一名优秀的程序员,十分优秀!