2013-06-18 79 views
-1

我在處理應用程序,其中包含具有ID的幾個的DIV像A1,A2,A3等 有導航的DIV選項擊中下一個以前按鈕,在帶來一個事業部在屏幕上一次。 strong text還有兩個動作:刪除。添加添加一個ID比ID最後一個ID的Div,例如如果最後的DIV ID是a3然後添加帶來a4Jquery:如何刪除單個Div後重新排列DIV?

真正的問題是刪除當前的DIV。如果用戶是在股利A2,命中刪除選項,則使用.remove()方法的jQuery

現在導航休息,因爲它是連續的刪除當前股利。它試圖找到Div a2但沒有找到。我認爲應該重新命名所有其餘DIV的ID。由於沒有a2所以a3應該成爲a2等。我怎樣才能做到這一點?代碼做不同的任務,下面給出:

function removeQuestion() 
{ 
    $("#_a"+answerIndex).remove(); 
    if(answerIndex > 1) 
    { 
     if ($("#_a"+(++answerIndex)).length > 0) 
     { 
      $("#_a"+answerIndex).appendTo("#answerPanel"); 
     } 
     else if($("#_a"+(--answerIndex)).length) 
     { 
      $("#_a"+answerIndex).appendTo("#answerPanel"); 
     } 
     totalOptions--; 
    } 
} 


function addQuestion() 
{ 
    var newId = 0; 
    totalOptions++; 
    var d = 1; 
    newId = totalOptions; 
    var _elemnew = '_a'+newId; 
    $("#_a"+d).clone().attr('id', '_a'+(newId)).appendTo("#answers_cache"); 
    var h = '<input onclick="openNote()" id="_note'+newId+'" type="button" value=" xx" />'; 
    $("#"+_elemnew+" .explain").html(h) 
    $("#"+_elemnew+" ._baab").attr("id","_baab"+newId); 
    $("#"+_elemnew+" ._fx").attr("id","_fasal"+newId); 
    $("#"+_elemnew+" .topic_x").attr("id","_t"+newId); 
    $("#"+_elemnew+" .topic_x").attr("name","_t"+newId); 
    $("#"+_elemnew+" .answerbox").attr("id","_ans"+newId); 
    $("#"+_elemnew+" .block").attr("onclick","openFullScreen('_ans"+newId+"')"); 

    $('.tree').click(function() 
     { 
     toggleTree(); 
     } 
    ); 
     $('.popclose').click(function() 
     { 
     unloadPopupBox(); 
     } 
    ); 
} 

function next() 
{ 
    console.log("Next ->"); 
    if(answerIndex < totalOptions) 
    { 
     answerIndex++; 
     console.log(answerIndex); 
     setInitialAnswerPanel(); 
    } 
} 
function previous() 
{ 
    console.log("Next <-"); 
    if(answerIndex > 1) 
    { 
     answerIndex--; 
     console.log(answerIndex); 
     setInitialAnswerPanel(); 
    } 
} 

複合DIV的的Html下面給出:

<div class="answers" id="_a1" index="1"> 
       <input placeholder="dd" id="_t1" type="text" name="_t1" class="urduinput topic_masla" value="" /> 
       <img class="tree" onclick="" src="tree.png" border="0" /> 
       <label class="redlabel"> 
        xx     : 
       </label> 
       <label id="_baab1" class="baabfasal _baab"> 
       </label> 
       <label class="redlabel"> 
        xx      : 
       </label> 
       <label id="_fasal1" class="baabfasal _fasal"> 
       </label> 
       <a title=" ddd" class="block" href="#" onclick="openFullScreen('_ans1')"> 
        <img src="fullscreen.png" border="0" /> 
       </a> 
       <textarea id="_ans1" class="answerbox" cols="40" rows="15"></textarea> 
       <span class="explain"> 
        <input onclick="openNote()" id="_note1" type="button" value=" xx" /> 
       </span> 
       <span style="float:left;padding-top:5%"> 
        <a href="#" onclick="addQuestion()">plus</a> | <a onclick="removeQuestion()" href="#">minus</a> 
       </span> 
      </div> 

回答

0
var originalSet = $('.answers'); 
var container = originalSet.up() ; 
var byId = function(a, b){ 
    return $(a).attr('id') > $(b).attr('id') ? 1 : -1; 
} 
originalSet 
    .order(byId) 
    .each(function rearrangeIds(position){ 
      $(this).attr({ 
       'index': poition, 
       'id': '_a'+position 
      }); 
    }).appendTo(container) 
+0

什麼是原創在這裏設置? – Volatil3

+0

originalSet將是所有涉及重新排列ID的DIV的選擇 – Edorka

+0

它是否會重新排列所有子DIV的ID? – Volatil3

0

你爲什麼不一直當前打開的,而不是索引頁和搜索以往和下一頁使用prev()next() jQuery樹遍歷方法?

0

選擇包含的問題,最好用CSS類選擇所有div元素,使用各種方法,並指定新的ID對他們說:

$('.questionDiv').each(function(index) { $(this).attr('id', 'a' + (index + 1)); }) 

這應該是足夠的。