在选定元素中上下移动选项的方式
Way to move options up and down in a select element
我有一个包含几个选项的下拉列表。我想选择一个元素并将其上下移动。我已经尝试过了,到目前为止我可以删除所选项目,但我不确定如何粘贴它。
就像在我的例子中,如果我移动例子2并向上移动,例子1应该在最后,例子2应该在顶部。
$(function () {
function cutAndPaste(from, to) {
return $(from + " option:selected").each(function () {
this.outerHTML;
}).remove();
}
$("#moveup").off("click").on("click", function () {
cutAndPaste("#sourceSelect", "#destinationSelect");
});
});
小提琴:http://jsfiddle.net/57f2drgj/
如果要移动一个元素,则不必首先remove
它。jQuery的insertBefore
和insertAfter
函数将移动它。
您可以使用.is(':first-child')
和.is(':last-child')
测试所选选项是第一个还是最后一个。然后,您将把它移到末尾或开头。
代码段:
$('#moveup').click(function() {
var opt = $('#sourceSelect option:selected');
if(opt.is(':first-child')) {
opt.insertAfter($('#sourceSelect option:last-child'));
}
else {
opt.insertBefore(opt.prev());
}
});
$('#movedown').click(function() {
var opt = $('#sourceSelect option:selected');
if(opt.is(':last-child')) {
opt.insertBefore($('#sourceSelect option:first-child'));
}
else {
opt.insertAfter(opt.next());
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="sourceSelect" id="sourceSelect" multiple="multiple" size="3">
<option value="example1">Example1</option>
<option value="example2">Example2</option>
<option value="example3">Example3</option>
</select>
<input type="button" name="moveup" id="moveup" value="up" />
<input type="button" name="movedown" id="movedown" value="down" />
类似的东西?
$(function() {
$("#moveup").click(function() {
if($("#sourceSelect").prop("selectedIndex") > 0){
var selOption = $("#sourceSelect").find(":selected");
selOption.insertBefore(selOption.prev());
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="sourceSelect" id="sourceSelect" multiple="multiple" size="3">
<option value="example1">Example1</option>
<option value="example2">Example2</option>
<option value="example3">Example3</option>
</select>
<input type="button" name="moveup" id="moveup" value="^" />
相关文章:
- 在用户关闭/更改移动浏览器选项卡之前进行检测
- 在两个多选字段之间移动选项
- 检测通过移动 Safari 中的 JavaScript 关闭浏览器选项卡
- 使用AngularJS在Bootstrap选项卡之间移动DOM元素
- 在选定元素中上下移动选项的方式
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 使用鼠标移动操作选择选项
- 更改移动web应用程序的字体大小选项
- 带有 AngularJS 的移动架构选项
- 禁用移动设备中的默认保存图像选项
- 如何声明,以便在 jquery 移动 UI 中突出显示默认选项卡
- 如何在使用angularjs选项卡时单击按钮移动到下一个选项卡
- 引导选项卡在单击时移动
- 如果用户不更改该选项,请将焦点移动到下一个字段
- 将引导选项卡栏转换为移动大小的手风琴菜单
- 检查选项卡是否已在移动设备上打开
- Jquery移动选项卡和可折叠
- 单击jquery移动选项卡时加载ajax项
- Jquery移动选项卡作为第二页
- jQuery移动选项值