2017-02-12 17 views
-1

javascriptを使用してhtmlテーブルの要素を交換する簡単な方法はありますか?このようなテーブルを持つインスタンスのjavascriptを使用してテーブルのtd要素を交換する

<table> 
<tr> 
    <td class = "draggable"> 
     <div class = "droppable">Item 1</div> 
    </td> 
</tr> 
<tr> 
    <td class = "draggable"> 
     <div class = "droppable">Item 2</div> 
    </td> 
</tr> 

私は、細胞を交換することが可能なようにしたいです。 ありがとう!

+0

あなたは 'tr'sまたは' td'sを交換したいですか? –

+0

こんにちは、私はTDを交換したい –

+0

可能な重複[要素を切り替えるネイティブjQuery関数はありますか?](http://stackoverflow.com/questions/698301/is-there-a-native-jquery-function-スイッチの要素) – Blauharley

答えて

0

あなたが任意の変数の内容を交換するのと同じ方法でそれを行うことができます:私は要素をスワップするために少し機能を書いた

var child1_HTML = $("table tr:nth-child(1)").html(); 
$("table tr:nth-child(1)").html($("table tr:nth-child(2)").html()); 
$("table tr:nth-child(2)").html(child1_HTML); 
0

。引数として親(スワップ要素のコンテナ)とスワップする子要素の2つの数値(インデックス)を渡します。

var rowsParent = document.getElementById('sortRows'); 
 
var cellsParent = document.getElementById('sortCells'); 
 

 
swapElements(rowsParent,0,1); 
 
swapElements(cellsParent,2,0); 
 

 
function swapElements(parent,elemA,elemB){ 
 
    //a little of validation 
 
    if(!parent||parent.constructor.toString().search('HTML')===-1) return; 
 
    var children = parent.children; 
 
    if(typeof elemA!=='number' || typeof elemB!=='number' || elemA===elemB || !children[elemA] || !children[elemB]) return; 
 
\t 
 
    elemB = elemA<elemB ? elemB--:elemB; 
 
    var childNumb = children.length - 1; 
 
\t 
 
    var a = parent.removeChild(children[elemA]); 
 
    var b = parent.removeChild(children[elemB]); 
 
    append(elemB,a); 
 
    append(elemA,b); 
 
\t 
 
     function append(a,b){ 
 
      childNumb===a ? parent.appendChild(b) : parent.insertBefore(b,children[a]); 
 
     } 
 
}
table, td { 
 
    border: solid 1px black; 
 
    padding: 3px; 
 
    margin: 15px; 
 
}
<table> 
 
    <tbody id="sortRows"> 
 
    <tr> 
 
     <td>a 1</td> 
 
     <td>a 2</td> 
 
     <td>a 3</td> 
 
     <td>a 4</td> 
 
     <td>a 5</td> 
 
    </tr> 
 
    <tr id="sortCells"> 
 
     <td>b 1</td> 
 
     <td>b 2</td> 
 
     <td>b 3</td> 
 
     <td>b 4</td> 
 
     <td>b 5</td> 
 
    </tr> 
 
    <tr> 
 
     <td>c 1</td> 
 
     <td>c 2</td> 
 
     <td>c 3</td> 
 
     <td>c 4</td> 
 
     <td>c 5</td> 
 
    </tr> 
 
    <tr> 
 
     <td>d 1</td> 
 
     <td>d 2</td> 
 
     <td>d 3</td> 
 
     <td>d 4</td> 
 
     <td>d 5</td> 
 
    </tr> 
 
    <tr> 
 
     <td>e 1</td> 
 
     <td>e 2</td> 
 
     <td>e 3</td> 
 
     <td>e 4</td> 
 
     <td>e 5</td> 
 
    </tr>  
 
    </tbody> 
 
</table>

+0

ありがとう!それは私をたくさん助けました。私が言及していたことを忘れていたことの1つは、セルドラッグアンドドロップスタイルを交換したいということです。しかし、あなたのコードはまだ役立ちます。 –

関連する問題