2017-10-09 11 views
0

javascriptを使用して選択した行を上に移動しますが、上に移動すると移動できるように見えますが、古い行はまだ存在しています。例えばChromeのJavascriptで選択した行を移動するには

:私は行 'BBBB' 上に移動 、それが上に移動することができますが、古い行はまだこれが私の情報源である

enter image description here

を削除されません。

function up_move(index) 
{ 
var frm = document.writeForm; 
var opts=frm["ans_list" + index].options 

for (var i=0; i<opts.length; i++) { 
    if (opts[i].selected && i>0) {   
     tmp=opts[i].cloneNode(true); 
     // opts[i].removeChild(true); 
     opts[i].removeChild(opts[i].childNodes[0]); 
     opts[i-1].insertAdjacentElement("beforeBegin",tmp).selected=true;    
    } 
} 

setting_val(index); 
} 

<tr> 
    <td><a href="#" onClick="javasript:up_move('<%=i+1%>');" style="float:left"><span class="bt_test_admin bg_type_01">▲ Up</span></a></td> 
</tr> 

どのようにこのエラーを修正しますか?本当にありがとう !

+0

は[あなた自身の質問5日として、この基本的に同じ問題ではありません前](https://stackoverflow.com/questions/46556064/how-to-move-up-or-down-a-text-row-in-javascript)? – nnnnnn

+0

はい、同じです。私のプロジェクトのために何かを変更する必要があるので、少し質問を更新する必要があります... – luongkhanh

+0

申し訳ありません... – luongkhanh

答えて

0

jQueryの、クローンおよび削除する必要はありませんし、あなたは.insertBefore().insertAfter()機能を使用することができます。

HTML:

<select size="5"> 
    <option>aaaa</option> 
    <option>bbbb</option> 
    <option>cccc</option> 
    <option>dddd</option> 
</select> 

<button id="btn_up">up</button> 
<button id="btn_down">down</button> 

のjQuery:

$(function() { 
    $('#btn_up').on('click',function() { 
     var sel = $('select option:selected'); 
     if (!sel.is(':first')) { 
      sel.insertBefore(sel.prev()); 
     } 
    }); 
    $('#btn_down').on('click',function() { 
     var sel = $('select option:selected'); 
     if (!sel.is(':last')) { 
      sel.insertAfter(sel.next()); 
     } 
    }); 
}); 

フィドル:https://www.bootply.com/x2cUA8SEMQ

オルタナティブ:

<a href>

<a href="#" onClick="javascript:up_move();" style="float:left"><span class="bt_test_admin bg_type_01">▲ Up</span></a> 
<br> 
<a href="#" onClick="javascript:down_move();" style="float:left"><span class="bt_test_admin bg_type_01">Down</span></a> 

jQueryを使って、あなたの要求に基づいて:

function up_move() { 
    var sel = $('select option:selected'); 
    if (!sel.is(':first')) { 
     sel.insertBefore(sel.prev()); 
    } 
} 
function down_move() { 
    var sel = $('select option:selected'); 
    if (!sel.is(':last')) { 
     sel.insertAfter(sel.next()); 
    } 
} 

フィドル:http://jsfiddle.net/sbv6stqh/

+0

こんにちは@Taufik Nur Ra​​hmanda:ボタンを交換するためにahrefを使用できますか? – luongkhanh

+0

@luongkhanh ''?私は理解していない、それぞれの "上"と "下"のクリックでページをリダイレクトしたいですか? –

+0

私のソースは 'onClick'とparam: '<%=i+1%>'を使用し、jqueryに変更するときにそれをどのように使用するのかが分かります。 – luongkhanh

関連する問題