js day13

讀取并修改元素的內容

假設兩個select元素,分別保存?zhèn)溥x地區(qū)列表和選中地區(qū)列表
實現兩選擇框之間選項的交換:
    包括:當個選中項左右移動
              多個選中項左右移動
              全左移和全右移
要求:兩個select中的地區(qū)都要按照名稱首字母排序
<select id="unsel" size="8" multiple>
        <option>Argentina</option>
        <option>Brazil</option>
        <option>Canada</option>
        <option>Chile</option>
        <option>China</option>
        <option>Cuba</option>
        <option>Denmark</option>
        <option>Egypt</option>
        <option>France</option>
        <option>Greece</option>
        <option>Spain</option>
</select>
    <div>
        <button onclick='move(this)'>&gt;&gt;</button>
        <button onclick='move(this)'>&gt;</button>
        <button onclick='move(this)'>&lt;</button>
        <button onclick='move(this)'>&lt;&lt;</button>
    </div>
<select id="sel" size="8" multiple>
</select>

1)將unsel元素中的所有國家名稱填充到unselCts中

unsel的內容去掉開頭和結尾的空字符,再掐頭去尾,按?切割

unselCts=
  unsel.innerHTML
       .replace(/^\s+|\s+$/g,"")
       .slice(8,-9)
       .split(/<\/option>\s*<option>/);

2)判斷btn的內容

是>>,就將unselCts拼接到selCts結尾,再保存回selCts中

function move(btn){
  switch(btn.innerHTML){
    case "&gt;&gt;":
      selCts=selCts.concat(unselCts);
      unselCts=[];//將unselCts清空
      break;

是<<,就將selCts拼接到unselCts結尾,再保存回unselCts中

    case "&lt;&lt;"://
      unselCts=unselCts.concat(selCts);
      selCts=[];//將selCts清空
      break;

是>, 查找id為unsel下的所有option,保存在變量opts中

    case "&gt;":
      var opts=document.querySelectorAll(
        "#unsel>option"
      );

反向遍歷opts中每個opt

    for(var i=opts.length-1;i>=0;i--){
        for(var i=0;i<opts.length;i++){
        //如果當前opt的selected為true//為什么用true判斷
        if(opts[i].selected){
          //刪除unselCts數組中當前位置的元素,再將刪除的元素拼接到selCts中
          selCts.push(unselCts.splice(i,1));
        }
    }
    break;
是<,就查找id為sel下的所有option,保存在變量opts中
    case "&lt;":
      var opts=document.querySelectorAll(
        "#sel>option"  
      );

反向遍歷opts中每個opt

      for(var i=opts.length-1;i>=0;i--){
        for(var i=0;i<opts.length;i++){
        //如果當前opt的selected為true
        if(opts[i].selected){
          //刪除selCts數組中當前位置的元素,再將刪除的元素拼接到unselCts中
          unselCts.push(selCts.splice(i,1));
        }
      }
  }

將unselCts按國家名稱升序排列

unselCts.sort();

將selCts按國家名稱升序排序

selCts.sort();

查找id為unsel的元素,保存在unsel中

var unsel=document.getElementById("unsel");

將unselCts數組的內容更新到unsel元素中

 updateSel(unselCts,unsel);

查找id為sel的元素,保存在sel中

  var sel=document.getElementById("sel");

將selCts數組的內容更新到sel元素中

  updateSel(selCts,sel);
}

設置sel的內容為:arr按?拼接,補上開頭和結尾

function updateSel(arr,sel){
  sel.innerHTML=("<option>"+
    arr.join("</option><option>")
    +"</option>");
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 轉至元數據結尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 2,069評論 0 9
  • 2212年第1234期 主編:吐槽 致親愛的讀者: 感謝您對星球日報的長期支持。星球將致力做宇宙最好的報紙。而作為...
    黃煢煢閱讀 729評論 3 3
  • 其實我還是會很難過很難過 據說會難過就是福報
    蘿卜兔子醬醬閱讀 165評論 0 0
  • 天色漸暗 還是老時間 六點零五分 還是老地點 我的圖書館 親愛的圖書館 我輕輕悄悄的來看一會書 待會 也一個人...
    童奕橙閱讀 222評論 13 6
  • 還記得,那天出現在電視節(jié)目里那個頭發(fā)花白的奶奶,被主持人問及她跟他已過世的老伴在大學校園里初次邂逅的故事,...
    水筠心寧閱讀 344評論 0 1

友情鏈接更多精彩內容