如何更改jQuery选择器返回的元素(单选按钮)的顺序?

时间:2015-07-08 02:17:17

标签: javascript jquery html

我有一个带收音机按钮的桌子。

在jQuery集合中,作为c = $('input[name=mybuttons]'),我按行获取它们,因此c[0]是左上角单元格中的c[0]

如何更改此顺序,以便比如tabindex成为另一个单元格,或箭头键,例如,按列而不是行;因此,选项卡会显示某个特定按钮而不是左上角,因此右箭头按某种特定顺序遍历按钮而不是从左到右?

对于复选框和Tab键,我使用{{1}}实现此目的。如何为单选按钮和右键实现类似的效果:在HTML中指定右键应该以什么顺序遍历它们?

小提琴:http://jsfiddle.net/2u30u7fp/3/标签键按所需顺序迭代,但右键和左键不是。

2 个答案:

答案 0 :(得分:0)

您可以使用underscore执行此操作,因为在您获得c后,您基本上会有一个元素列表。

var sortedC = _.sortBy(c, function (elem) { return elem.propertyToSort; });

答案 1 :(得分:0)

您可以:使用.insertBefore().insertAfter()。在我的示例中,如果您选择单选按钮,该按钮将转到组中的第一个。

$(document).on("change", "input[name='sex']", function() {
  var index = $("input[name='sex']").index($(this));
  console.log(index);
  if (index != 0) {
    $(this).parent('div').insertBefore("div:first");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input type="radio" name="sex" value="male">Male</div>
<div>
  <input type="radio" name="sex" value="female">Female</div>

希望这有帮助。