第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用jQuery按字母順序?qū)x項(xiàng)元素進(jìn)行排序

使用jQuery按字母順序?qū)x項(xiàng)元素進(jìn)行排序

慕少森 2019-10-28 15:47:53
我正在嘗試按字母順序了解option元素內(nèi)的排序元素select。理想情況下,我想將此作為一個(gè)單獨(dú)的函數(shù),在這里我可以只傳遞select元素,因?yàn)樵谟脩魡螕裟承┌粹o時(shí)需要對(duì)它進(jìn)行排序。我在高低處搜尋了一種執(zhí)行此操作的好方法,但找不到任何對(duì)我有用的方法。選項(xiàng)元素應(yīng)按文本而不是值按字母順序排序。這有可能嗎?
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

我要做的是:


將每個(gè)文本和值提取<option>到對(duì)象數(shù)組中;

對(duì)數(shù)組排序;

<option>按順序使用數(shù)組內(nèi)容更新元素。

要使用jQuery,您可以執(zhí)行以下操作:


var options = $('select.whatever option');

var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();

arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });

options.each(function(i, o) {

  o.value = arr[i].v;

  $(o).text(arr[i].t);

});

這是一個(gè)工作的jsfiddle。


編輯 -如果要排序而忽略字母大小寫(xiě),則可以在比較之前使用JavaScript .toUpperCase()或.toLowerCase()函數(shù):


arr.sort(function(o1, o2) {

  var t1 = o1.t.toLowerCase(), t2 = o2.t.toLowerCase();


  return t1 > t2 ? 1 : t1 < t2 ? -1 : 0;

});


查看完整回答
反對(duì) 回復(fù) 2019-10-28
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

接受的答案并非在所有情況下都是最好的,因?yàn)橛袝r(shí)您希望保留選項(xiàng)和不同參數(shù)的類(lèi)(例如data-foo)。


我的解決方案是:


var sel = $('#select_id');

var selected = sel.val(); // cache selected value, before reordering

var opts_list = sel.find('option');

opts_list.sort(function(a, b) { return $(a).text() > $(b).text() ? 1 : -1; });

sel.html('').append(opts_list);

sel.val(selected); // set cached selected value

//對(duì)于ie11或獲得空白選項(xiàng)的用戶,請(qǐng)?zhí)鎿Qhtml('')empty()


查看完整回答
反對(duì) 回復(fù) 2019-10-28
?
千萬(wàn)里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

<select id="mSelect" >

    <option value="val1" > DEF </option>

    <option value="val4" > GRT </option>

    <option value="val2" > ABC </option>

    <option value="val3" > OPL </option>

    <option value="val5" > AWS </option>

    <option value="val9" > BTY </option>

</select>


$("#mSelect").append($("#mSelect option").remove().sort(function(a, b) {

    var at = $(a).text(), bt = $(b).text();

    return (at > bt)?1:((at < bt)?-1:0);

}));


查看完整回答
反對(duì) 回復(fù) 2019-10-28
  • 3 回答
  • 0 關(guān)注
  • 599 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)