使用JQuery.map()将两个表与对应的数据映射为一个数组
我正在从一个网站上抓取信息。我试图从这两个表中获得以下信息 PlayerRank PlayerName奖 两个表中的信息相互关联 然后我需要将每个玩家的信息输入到我的数据库中 我现在无法将两个表中的信息放入一个数组中 我创建了一个JSFIDLE来尝试不同的东西 表一使用JQuery.map()将两个表与对应的数据映射为一个数组,jquery,Jquery,我正在从一个网站上抓取信息。我试图从这两个表中获得以下信息 PlayerRank PlayerName奖 两个表中的信息相互关联 然后我需要将每个玩家的信息输入到我的数据库中 我现在无法将两个表中的信息放入一个数组中 我创建了一个JSFIDLE来尝试不同的东西 表一 有几种方法可以做到这一点。您可以使用一个映射,并使用作为参数提供的索引来获取其他表数据,以便与正在映射的表组合 或 使用您已经完成的工作,最后使用: var results = $.extend(true, prizeTable,
有几种方法可以做到这一点。您可以使用一个
映射
,并使用作为参数提供的索引来获取其他表数据,以便与正在映射的表组合
或
使用您已经完成的工作,最后使用:
var results = $.extend(true, prizeTable, playerTable);
或
将第二个表中的单元格附加到第一个表中,然后获取列并映射第一个表如何在没有重复列的情况下执行此操作?哦,是的..我没有注意到…给我几分钟时间真正简单的方法是在制作
列时将两个标题文本小写
,这样就存在相同的属性,而不必这样做别的。。不会有两个属性…只有一个。扩展就是这样工作的……如果属性存在,它会将第一个值设置为第二个值。我不知道如何将第一个表中的单元格附加到第二个表中。我想我应该能够处理这个问题。非常感谢。不用了,用两次没关系。。。这里还有一个较短的合并表版本
<table id="ranked_players">
<thead>
<tr><th>RANK</th>
<th>NAME</th>
<th>CHIPS</th>
</tr></thead>
<tbody>
<tr class="odd">
<td>1</td>
<td>shanghai</td>
<td>20000.00</td>
</tr>
<tr class="even">
<td>2</td>
<td>SOCRATES</td>
<td>0.00</td>
</tr>
<tr class="odd">
<td>3</td>
<td>mollypop</td>
<td>0.00</td>
</tr>
<tr class="even">
<td>4</td>
<td>Vegaz</td>
<td>0.00</td>
</tr>
<tr class="odd">
<td>5</td>
<td>aRrOwDreWLs</td>
<td>0.00</td>
</tr>
<tr class="even">
<td>6</td>
<td>Cheatos</td>
<td>0.00</td>
</tr>
<tr class="odd">
<td>7</td>
<td>easypoker</td>
<td>0.00</td>
</tr>
<tr class="even">
<td>8</td>
<td>YNVME</td>
<td>0.00</td>
</tr>
<tr class="odd">
<td>9</td>
<td>askewbowl</td>
<td>0.00</td>
</tr>
<tr class="even">
<td>10</td>
<td>funlv</td>
<td>0.00</td>
</tr>
</tbody>
</table>
$(document).ready(function(){
var columns = $('#ranked_players thead th').map(function() {
return $(this).text();
});
var playerTable = $('#ranked_players tbody tr').map(function(i) {
var row = {};
$(this).find('td').each(function(i) {
var rowName = columns[i];
row[rowName] = $(this).text();
});
return row;
}).get();
console.log(playerTable);
var columns = $('#prize_info_container table thead th').map(function() {
return $(this).text();
});
var prizeTable = $('#prize_info_container table tbody tr').map(function(i) {
var row = {};
$(this).find('td').each(function(i) {
var rowName = columns[i];
row[rowName] = $.trim($(this).text());
});
return row;
}).get();
console.log(prizeTable);
});
var results = $.extend(true, prizeTable, playerTable);