1

我有一个棘手的情况要解决。我正在尝试使用 jquery 或任何可用的插件随机洗牌表的列及其数据。

我能够将列移动到特定位置,但我想要实现的是将列及其数据随机移动到任何位置。

例子:

实际的:

<table>
<tr>
    <td>One</td>
    <td>Two</td>
    <td>Three</td>
    <td>Four</td>
</tr>
<tr>
    <td>Data One</td>
    <td>Data Two</td>
    <td>Data Three</td>
    <td>Data Four</td>
</tr>
</table>

预期:(不精确的格式,因为我希望将列随机洗牌到任何位置)

<table>
<tr>
    <td>Two</td>
    <td>Five</td>
    <td>One</td>
    <td>Three</td>
    <td>Four</td>
</tr>
<tr>
    <td>Data Two</td>
    <td>Data Five</td>
    <td>Data One</td>
    <td>Data Three</td>
    <td>Data Four</td>
</tr> 
</table>

哦,我看到了问题。你ArrayAdapter的 s 是null。你永远不会初始化它们

ArrayAdapter<String> spinnerOpt1;
 ArrayAdapter<String> spinnerOpt2;
 ArrayAdapter<String> spinnerOpt3;

您需要在使用它们之前在某处初始化它们onPostExecute()

else if(spinnerOpt1.equals(sel_opt1))据我所见,这是假设第 689 行是。如果不是,那么您可能还有其他问题,但需要初始化

4

1 回答 1

0

使用外部库这实际上非常简单。Underscore JS 有一个 shuffle 方法,可以很好地使用。

随机播放:http ://underscorejs.org/#shuffle

见这里:http: //jsfiddle.net/KyleMuir/NfvBa/

var rows = $('tr');
$.each(rows, function(index, value) {
    var cells = $('td', value);
    var shuffledCells = _.shuffle(cells);
    $(this).html(shuffledCells);
});

这就是它所需要的。

编辑:鉴于您希望数据一起移动的新要求,我将这个示例放在一起:http: //jsfiddle.net/KyleMuir/NfvBa/3/

在此示例中,我将我们感兴趣的数据存储为名称值对数组。这样我们就可以对数组进行一次洗牌,然后提取我们感兴趣的属性。在我们提取值之后,我将它们注入到表格行中。我给了表格行类,但是,它可以用直接的 CSS 选择器来完成。

希望这可以帮助。

于 2013-07-16T19:18:25.263 回答