js刪除dom節點時候索引出錯問題

来源:http://www.cnblogs.com/hao123456/archive/2016/04/23/5425196.html
-Advertisement-
Play Games

我們知道刪除一個dom節點的時候索引就會發生了改變,甚至是錯誤,就算jq的ecah也無能為力,所以我們只能自己寫個功能了 直接上代碼把,不多說 <!DOCTYPE html> <html> <head> <title>fancyBox - Fancy jQuery Lightbox Alternat ...


我們知道刪除一個dom節點的時候索引就會發生了改變,甚至是錯誤,就算jq的ecah也無能為力,所以我們只能自己寫個功能了

 

直接上代碼把,不多說

<!DOCTYPE html> <html> <head>  <title>fancyBox - Fancy jQuery Lightbox Alternative | Demonstration</title>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 <!-- Add jQuery library -->  <script type="text/javascript" src="../lib/jquery-1.10.1.min.js"></script>

 <!-- Add mousewheel plugin (this is optional) --> <!-- <script type="text/javascript" src="../lib/jquery.mousewheel-3.0.6.pack.js"></script> -->  <!-- Add fancyBox main JS and CSS files -->  <script type="text/javascript" src="../source/jquery.fancybox.js?v=2.1.5"></script>  <link rel="stylesheet" type="text/css" href="../source/jquery.fancybox.css?v=2.1.5" media="screen" />

 <!-- Add Button helper (this is optional) -->  <link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-buttons.css?v=1.0.5" /> <!-- <script type="text/javascript" src="../source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script> -->  <!-- Add Thumbnail helper (this is optional) -->  <link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" /> <!-- <script type="text/javascript" src="../source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script> -->  <!-- Add Media helper (this is optional) --> <!-- <script type="text/javascript" src="../source/helpers/jquery.fancybox-media.js?v=1.0.6"></script> --> </head> <style> *{  margin:0;  padding:0;}  li{ list-style:none;}  #div{   margin:20px;    height:auto;   width:auto;   overflow:hidden;      }  #div   div {    height:30px;     width:30px;     overflow:hidden;      position:absolute;     right:0px;     top:0px;      z-index:9;    }    #div .closs  {     position:absolute;     left:-4px;     top:-2px;      }      #ul1{    height:auto;    width:auto;     overflow:hidden;     background:#ccc;    }     #div li{      position:relative;      height:100px;      width:100px;      float:left;      margin:5px;      }      #div li > img{         height:100px;            width:100px;      position:absolute;      left:0px;      top:0px;       }       #div li span{        position:absolute;        left:0px;        top:0px;        opacity:0;         filter:alpha(opacity=0);         z-index:3;         height:100px;               width:100px;      background:red;         }      #makImg{        display:none;       }  </style>  <body>  <input  type="button" id="but" value="添加圖片"/>  <div id="div">         <!--ul li img -->       <ul id="ul1">           <!--     <li>                                <div   >                       <img  class = "closs"    src="../source/fancybox_sprite.png" />                   </div>                    <img class="main" src="1_b.jpg" />                    <span class='makClick'>1</span>               </li>                                          <li>                                              <div   >                       <img class = "closs"  src="../source/fancybox_sprite.png" />                   </div>                    <img class="main" src="1_b.jpg" />                    <span class='makClick'> </span>               </li>                                          <li>                                               <div   >                       <img  class = "closs"  src="../source/fancybox_sprite.png" />                   </div>                    <img class="main" src="1_b.jpg" />                    <span class='makClick'> </span>               </li>                                          <li>                                              <div   >                       <img  class = "closs"    src="../source/fancybox_sprite.png" />                   </div>                    <img class="main" src="1_b.jpg" />                    <span class='makClick'> </span>               </li>-->           </ul>  </div>        <div id='makImg'>   <!--<a class="fancybox-buttons" data-fancybox-group="button" href="1_b.jpg"><img src="1_s.jpg" alt="" /></a>

  <a class="fancybox-buttons" data-fancybox-group="button" href="2_b.jpg"><img src="2_s.jpg" alt="" /></a>

  <a class="fancybox-buttons" data-fancybox-group="button" href="3_b.jpg"><img src="3_s.jpg" alt="" /></a>

  <a class="fancybox-buttons" data-fancybox-group="button" href="4_b.jpg"><img src="4_s.jpg" alt="" /></a>-->  </div>    <script> $(document).ready(function() {       $(".fancybox-effects-a").fancybox({     helpers: {      title : {       type : 'outside'      },      overlay : {       speedOut : 0      }     }    });    });         var Odiv = document.getElementById('div'),          Obut =  document.getElementById('but');        function getByClass(o_parentId, class_name){            var  obj_arr = [ ],               obj_s = o_parentId.getElementsByTagName("*");         for(var i = 0 , len = obj_s.length; i < len; i++){               if(obj_s[i].className == class_name){                 obj_arr.push(obj_s[i]);            }         }             return  obj_arr;     }              var  evnet_index = {                       setIndex : function(obj_arr){             for(var i = 0, len = obj_arr.length; i < len ;i++ ){                                obj_arr[i].index = i;                           }           },           getIndex : function(o_parent, event_type, class_name , fn){                  var  target_obj = new Object( );             o_parent['on'+event_type]= function( e ){                     var ev = e || window.event,                                                   target = ev.target || ev.srcElement;                  if(target.className == class_name){                         fn && fn({obj : target , index : target.index});                     }               }             }               }          var add_remove_child = {          RemoveChild : function (obj,index){                 var    nwe_obj =  obj[0];                      nwe_obj.parentNode.removeChild(obj[index]);           },          AddMaxImg : function(src){                             var a_obj = document.createElement('a');                 a_obj.className = "fancybox-effects-a";              a_obj["data-fancybox-group"] = 'button';              a_obj.href = src;                          var img_obj = document.createElement('img');                 img_obj.src = src;               a_obj.appendChild(img_obj);            return  a_obj;                              },          AddUl :  function  ( ){            if(Odiv.getElementsByTagName('ul').length>=1){              return  Odiv.getElementsByTagName('ul')[0];             }else{            var       Oul = document.createElement('ul');               Odiv.appendChild(Oul);             return Oul;             }                       },      AddChild :  function  (src){          var     Oli = document.createElement('li');           Oli_div = document.createElement('div');                     Oli.appendChild(Oli_div);                var    Oli_div_img  = document.createElement('img');                   Oli_div_img.className = 'closs';             Oli_div_img.src = '../source/fancybox_sprite.png';                         Oli_div.appendChild(Oli_div_img);                    var    Oli_img   = document.createElement('img');             Oli_img.src = src;             Oli.appendChild(Oli_img);                    var    Oli_span = document.createElement('span');                   Oli_span.style.zIndex = 3;             Oli_span.className = 'makClick';             Oli.appendChild(Oli_span);                       return  Oli;       }          };        var img_index = 0;     Obut.onclick = function( ){          img_index = (img_index <  5)?(img_index+1):1;         document.getElementById('makImg').appendChild(add_remove_child.AddMaxImg(img_index+'_b.jpg'));           add_remove_child.AddUl( ).appendChild(add_remove_child.AddChild( img_index+'_b.jpg'));        evnet_index.setIndex(getByClass(Odiv,  'makClick'));        evnet_index.setIndex(getByClass(Odiv, 'closs'));     }           //事件所有的子對象只能綁定一個父對象,不能多個類的子對象綁定相同的父對象。      evnet_index.setIndex(getByClass(Odiv,  'makClick'));        evnet_index.getIndex(document.getElementById('div'), 'click' ,'makClick' , function(obj){              ;              alert(obj.index);        $('.fancybox-effects-a').eq(obj.index).trigger('click');       });               //事件所有的子對象只能綁定一個父對象,不能多個類的子對象綁定相同的父對象。    evnet_index.setIndex(getByClass(Odiv, 'closs'));      evnet_index.getIndex(document.getElementById('ul1'), 'click' ,'closs' , function(obj){          img_index--;         add_remove_child.RemoveChild(document.getElementById('makImg').getElementsByTagName('a'),obj.index);          add_remove_child.RemoveChild(document.getElementById('ul1').getElementsByTagName('li'),obj.index);                  evnet_index.setIndex(getByClass(Odiv,  'makClick'));            evnet_index.setIndex(getByClass(Odiv, 'closs'));          alert(obj.index);              });             </script> </body> </html>


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在進行定時器的製作時,我想先把我們需要用到的一些東西介紹給大家。 定時器的作用 開啟定時器 setInterval 間隔型 setTimeout 延遲型 停止定時器 clearInterval clearTimeout 數位時鐘思路效果 獲取系統時間: date對象 getHours getMinu ...
  • 最近在做文件上傳的功能,因為界面設計比較簡單,就沒有引用jq,但是網上大部分的上傳插件都需要jq的支持。為了一個上傳功能引用90多k的jq文件有點太小題大做了,所以就自己動手寫了一個原生js上傳的demo。下麵是代碼: HTML代碼 伺服器端用的是.Net c#代碼 說明: 根據網上相關資料,據說支 ...
  • 通配選擇器 可以與任何元素匹配,就像是一個通配符 元素選擇器 指示文檔元素的選擇器。 分組 選擇器分組 聲明分組 結合選擇器和聲明分組 類選擇器和ID選擇器 獨立於文檔元素的方式來指定樣式 類選擇器 ID選擇器 ID選擇器和類選擇器的不同之處: 類選擇器和ID選擇器可能是區分大小寫的,這取決於文檔語 ...
  • CSS3新增的動畫幀非常絢麗,可以簡單實現一些動畫效果,目前除IE外各大主流瀏覽器都支持 本文演示三個:transform: scale3d(x, y, z)-縮放;、transform: translate3d(x, y, z)-位移;、transform:rotateX/Y(?deg)-旋轉; ...
  • 一、元素選擇器 HTML文檔元素就是最基本的選擇器 如: 示例將<p>元素的字體顏色設置為了藍色,元素選擇器將作用於文檔內所有的<p>元素。同樣,我們也能夠同時為多個元素應用一種樣式,如: 為多個元素應用樣式時,用逗號分隔。 *作為通配選擇器,可以與任何元素匹配。 格式:元素|通配符 二、類選擇器 ...
  • 所謂的瀏覽器相容性問題,是指因為不同的瀏覽器對同 段代碼有不同的解析,造成 顯 效果不統 的情況。在 多 數情況下,我們的需求是, 論 戶 什麼瀏覽器來查看我們的 站或者登陸我們的系統,都應該是統 的顯 效果。所 以瀏覽器的相容性問題是前端開發 員經常會碰到和必須要解決的問題。 在學習瀏覽器相容性之 ...
  • 有話先說:本文的目的主要是向大家描述一下我們在遇見IE8版本一下以及Firefox相容的問題。 針對不同的瀏覽器寫不同的CSS的過程,這就叫CSS hack,也叫寫CSS hack,相信您會對一些比較不易解決的相容問題有一定的興趣。 註意點: 網上很多資料中常常把!important也作為 個hac ...
  • 效果預覽:http://hovertree.com/texiao/js/22/效果圖:代碼如下: 轉自:http://hovertree.com/h/bjaf/meihua.htm 推薦:http://hovertree.com/h/bjaf/h9tb5itb.htm 更多特效:http://www ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...