我用JQuery调用一个方法生成table的行,再用js方法将其移动,但是有标题的时候最上一行的生成行点击“上移”会移到标题上面去,求高手赐教。我用的这个JQuery
$(function(){
//添加选项
   $("#addopt").click(function(){
value=document.getElementById("opt").value;
   if(document.getElementById("opt").value==''){
   alert("选项内容不能为空");
   return false;
   }
   $.ajax({                                                  
type: "POST",                                     
url: "index.php?action=add_onetrue",                                       
data: "&value="+value,
 success:function(msg){
document.getElementById("opt").value='';
document.getElementById('opt').focus();

$("#xuanxiang").append(msg);
}
})
 
   })
})调用<?php
//echo '<script type="text/javascript">alert("here");</script>';
$value=$_POST['value'];$str='<tr><td height="30" id="onecon" name="onecon[]" value="'.$value.'">'.$value.'</td><td><input type="radio" value="0" id="daan" name="daan"></td><td><span id="stable"><a href="#" onclick="$(this).parent().parent().parent().remove();"> 删除</a><a href="#" onclick="oneup(this);"> 上移</a><a href="#" onclick="onedown(this);"> 下移</a></span></tr>';
echo $str;
?>生成一行,添加到页面
<table class="smlpubale" id="xuanxiang">
<col /><col width="80" /><col />
<tr>
<th height="30">选项</th>
<th>设为正确</th>
<th>操作</th>
</tr>

</table>由于有标题行,所以要判断如果是表的第二行就要禁止上移。不会判断。

解决方案 »

  1.   

    下移
    function onedown(obj){

       var onthis = $(obj).parent().parent().parent();
       var getdown = $(obj).parent().parent().parent().next();
       $(getdown).after(onthis);
    }  
    上移
    function oneup(obj){   var onthis = $(obj).parent().parent().parent();
       var getup = $(obj).parent().parent().parent().prev();
       $(getup).before(onthis);}终于有人了,好激动
      

  2.   


    function oneup(obj){  var onthis = $(obj).parent().parent().parent();
      var getup = onthis.prev();
      if(getup.find("th").size()>0){
        alert("已经移动到顶部了!");
        return false;
      }
      $(getup).before(onthis);}