var indexes = {
'spear' : $('#commands_table th:has(img[src*="unit_spear"])').index(),
'sword' : $('#commands_table th:has(img[src*="unit_sword"])').index(),
'axe' : $('#commands_table th:has(img[src*="unit_axe"])').index(),
'archer' : $('#commands_table th:has(img[src*="unit_archer"])').index(),
'spy' : $('#commands_table th:has(img[src*="unit_spy"])').index(),
'light' : $('#commands_table th:has(img[src*="unit_light"])').index(),
'marcher' : $('#commands_table th:has(img[src*="unit_marcher"])').index(),
'heavy' : $('#commands_table th:has(img[src*="unit_heavy"])').index(),
'ram' : $('#commands_table th:has(img[src*="unit_ram"])').index(),
'cata' : $('#commands_table th:has(img[src*="unit_catapult"])').index(),
'snob' : $('#commands_table th:has(img[src*="unit_snob"])').index(),
'knight' : $('#commands_table th:has(img[src*="unit_knight"])').index(),
};
for (var key in indexes) {
if (indexes[key] < 0)
delete(indexes[key]);
}
json stringify alert:
{"spear":3,"sword":4,"axe":5,"spy":6,"light":7,"heavy":8,"ram":9,"cata":10,"snob":11}
我现在拥有了所有索引,我需要找到每个单元的每个匹配值(按索引)。
var matchingvalues = ['spear', 'sword', 'axe', 'archer',
'spy', 'light', 'marcher', 'heavy',
'ram', 'cata', 'noble', 'knight'],
var matchingvalues = bevelnaam.closest('tr').find('td').eq(indexes).text();
需要成为什么:
var matchingvalues = ['spear' : numberofspear
'sword' : numberofsword' ]
等
非常感谢任何帮助(以及对它的一些解释:))
编辑:添加小提琴。你可以看到每个tr看起来都一样。我试图在每个tr的右侧找到所有数字并将它们放入一个数组中(我将使用这些值做一些事情,但那些并不相关)。您可以在列的顶部看到这些图像,这些图像是单位(矛,剑等),我需要每个tr(在我的每个tr函数中)的每个单位的值,在某种数组中。 / p>
答案 0 :(得分:0)
为了实现这一点,你需要循环matchingvalues
并执行一个函数,然后将结果存储在一个新对象中。
由于您已经在使用jQuery,因此您可能需要查看jQuery .map()或仅使用forEach MDN - forEach()
你可以这样做:
var mapped_matching_values = {};
matchingvalues.forEach(function(elem, index){
//extract the key name (i.e. spear, sword, etc)
var key_name = matchingvalues[index];
//extract the text
var text = bevelnaam.closest('tr').find('td').eq(indexes).text();
//insert into object with processed values
mapped_matching_values[key_name] = text;
});
//now use mapped_matching_values