将值添加到选择和排序
Add values to a Select and sort
我有几个选择,如果我选择其中一个值,它们相互依赖,另一个值被删除,而前一个值被添加到其他值,我如何通过JQuery将前一个值添加到选择? 然后按字母顺序排序?
不确定排序(应该不太难弄清楚),但您可以将<option>
元素附加到如下所示的列表中:
$("#myselect").append(
$("<option>").prop("selected", "selected").attr("value", "OptionValue").text("OptionText")
);
仅当您需要元素成为列表中的选定元素时,才对 prop()
进行第一次调用,否则可以省略它。
编辑:我继续计算出排序部分:
var elems = [];
$("#sortable > option").each(function () {
elems.push({ key: $(this).val(), value: $(this).text() });
});
elems.sort(function (a, b) {
if (a.value < b.value) return -1;
if (a.value > b.value) return 1;
return 0;
});
$("#sortable").empty();
$.each(elems, function (idx, item) {
$("#sortable").append(
$("<option>").attr("value", item.key).text(item.value)
);
});
由于用于
添加值的代码可用,因此这里是用于在 select 中对值进行排序的代码
function sortOptions()
{
var arr = [];
$("#myselect option").each(function(){
arr.push($(this).html());
});
$('#myselect').empty();
arr.sort();
var html='';
for(var i=0;i<arr.length;i++)
{
html+='<option>' + arr[i] + '</option>'
}
$('#myselect').html(html);
}
我想你不能真正"订购"DOM元素。
最好的方法是读出 select 的所有元素,元素应该添加到数组中,将新值添加到数组中,然后对其进行排序。当然,在此过程中应删除 DOM 元素。然后,按照所需的顺序将新排序的元素再次添加到 DOM 中。
相关文章:
- Select2val不反映选择顺序,但对其进行排序
- 通过javascript和php动态排序表以及其他一些选择标准
- 如何在d3中对形状选择进行排序
- 如何根据用户选择顺序重新排序多选的值
- 动态生成<选择>未显示已排序列表中的第一个项目
- 使用多个页面的选择选项标签对 mysql 中的数据进行排序
- 是否有根据特异性对 CSS 选择器文本进行排序的 JS 库
- 将值添加到选择和排序
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- 选择下拉列表时,按角度中的多个字段排序
- 在JS选择列表中按字母顺序对选项进行排序
- D3 - 为什么此排序函数不更新其选择中的所有元素
- EmberJS ArrayControlller 在排序后重置选择
- Javascript/JQuery 对选项中的选择元素和标签属性进行排序
- 在第一个由 angularjs 选择中排序默认选项
- 使用JavaScript的“选择排序”
- 使用javascript排序选择选项
- 排序选择框经典asp
- 如何排序选择列表中的选项,但保留一个在顶部
- Javascript中的排序选择选项-基于同一行中的多个值