Javascript 找出表中的哪一行';我刚搬家
我想创建一个包含可拖放行的表,这可以通过jqueryui实现,但是我想更新每行第一个单元格中的数字,使其始终对应自上而下的数字顺序 例如,表格的开头可能是这样的:Javascript 找出表中的哪一行';我刚搬家,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我想创建一个包含可拖放行的表,这可以通过jqueryui实现,但是我想更新每行第一个单元格中的数字,使其始终对应自上而下的数字顺序 例如,表格的开头可能是这样的: <table id="myTableId"> <tbody> <tr class="draggable droppable"><td>1</td><td>abc</td></tr> <tr cl
<table id="myTableId">
<tbody>
<tr class="draggable droppable"><td>1</td><td>abc</td></tr>
<tr class="draggable droppable"><td>2</td><td>def</td></tr>
<tr class="draggable droppable"><td>3</td><td>ghi</td></tr>
</tbody>
</table>
1abc
2def
3ghi
在用户拖动关于它的行后,可能会以如下方式结束,例如:
<table id="myTableId">
<tbody>
<tr class="draggable droppable"><td>2</td><td>def</td></tr>
<tr class="draggable droppable"><td>3</td><td>ghi</td></tr>
<tr class="draggable droppable"><td>1</td><td>abc</td></tr>
</tbody>
</table>
2def
3ghi
1abc
然后,我想运行一个函数,将第一个单元格中的数字按自上而下的顺序重新排序,这样html就会变成这样:
<table id="myTableId">
<tbody>
<tr class="draggable droppable"><td>1</td><td>def</td></tr>
<tr class="draggable droppable"><td>2</td><td>ghi</td></tr>
<tr class="draggable droppable"><td>3</td><td>abc</td></tr>
</tbody>
</table>
1def
2ghi
公元前3年
行已被移动,但顶部的行在第一个单元格中仍然具有值1,第二行仍然具有值2,依此类推
我发现了一个JavaScript函数,该函数计算表中的行数,如何编写JavaScript函数将表中第一个单元格中的数字1、2和3重新排序
<script>
var rows = document.getElementById('myTableId').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
alert(rows);
</script>
var rows=document.getElementById('myTableId').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
警报(行);
作为参考,这是我用来使行可拖放的jquery:
$(function() {
$(".draggable").draggable( {
helper: function() { return "<div class='shadow'></div>"; },
start: moveShadow,
revert: true
});
function moveShadow(event, ui) {
var helper = ui.helper;
var element = $(event.target);
helper.width(element.width());
helper.height(element.height());
}
$(".droppable").droppable({
hoverClass: 'ui-state-active',
drop: function(event, ui) {
var target = $(event.target);
var draggable = ui.draggable;
draggable.insertBefore(target);
}
});
});
$(函数(){
$(“.draggable”)。draggable({
助手:函数(){return”“;},
开始:移动阴影,
回复:真
});
函数moveShadow(事件、ui){
var helper=ui.helper;
var元素=$(event.target);
helper.width(element.width());
height(element.height());
}
$(“.droppable”).droppable({
hoverClass:“ui状态处于活动状态”,
drop:函数(事件、用户界面){
var target=$(event.target);
var draggable=ui.draggable;
draggable.insertBefore(目标);
}
});
});
不需要计算任何东西。只需运行一个循环并递增:
您需要将其应用到drop回调中。成功了,只需每次调用该函数并将myCount传递为1,这样它每次都以1开始。谢谢:)
var myCount = 1;
$('#myTableId tr.droppable').each(function() {
$(this).find('td').eq(0).text(myCount);
myCount ++;
});