javascript实现字段上移下移功能,并按调整好的顺序输出各组段对应的数据库值。

JavaScript016

javascript实现字段上移下移功能,并按调整好的顺序输出各组段对应的数据库值。,第1张

这个功能你要自己写?

自己写很痛苦的,而且还要处理不同浏览器的兼容问题,建议你还是作用JS框架。。EXTjs吧

如果你真要自己写,我愿意讲下我的思路。

首先假设有一个rowUp(trId,rowcounts)方法 ,和一个rowDown(trId,rowcounts)方法,参数是某行的tr的id,参数二是要移动的行数,或者你不用table,用DIV也行。

我会把每行数据看作一个对象,当这个对象中的某个ID需要rowUp/rowDown的时候,我就调这个td的parent的rowUp/rowDown函数

现在再研究下,怎么确定这行要上还是要下

还是用TABLE举例,如果我排序的是第三列,那就应该迭代table的第三列所有td元素,取里面的值,然后进行排序,排序的时候可以 这样做:

假设第一行是3,第二行是1,那么,1这一行可能要放到第一行,

所以它是上移一行那应该调用 函数rowUp(trId_2,1)

这样一直迭代下去。我这只是拿冒泡排序(应该是冒泡吧,我不记得名称了,不用在意这些细节)的思路走的,如果你有更好的算法,可以不用我这个算法思路。。

<html>

<meta http-equiv="content-type" content="text/htmlcharset=gb2312" />

<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

<script language="JavaScript" type="text/javascript">

function get(obj) {

var obj = document.getElementById("qx").value

var obj = obj.split('\n')

var i = 0

var arr_all = new Array()

var exists = document.getElementById('a').childNodes

for (var j=0j<exists.lengthj++) {

if (exists[j].nodeName == 'DIV') {

var exist_url = exists[j].firstChild.nextSibling.value

var exist_name = exists[j].lastChild.previousSibling.innerHTML

var exist = exist_url + '|' + exist_name

arr_all.push(exist, arr_all)

}

}

for (i = 0i <obj.lengthi++) {

obj[i] = trim(obj[i])

if (obj[i] == '') {

continue

}

if (in_array(obj[i], arr_all)) {

continue

}

arr_all.push(obj[i])

var name = obj[i].split("|")[1]

var url = obj[i].split("|")[0]

var iht = ''

iht += '<div><span>上移</span><span>下移</span><input size=80 value='+url+' /><span>'+name+'</span>'

iht +='<input type="button" value=" 删除 " class="inputbtn" onclick="deleteNum(this)" /></div><br>'

document.getElementById("a").innerHTML+=iht

}

document.getElementById("qx").value=""

}

function deleteNum(obj) {

obj.parentNode.parentNode.removeChild(obj.parentNode.nextSibling)

obj.parentNode.parentNode.removeChild(obj.parentNode)

}

function trim(string) {

return string.replace(/(^\s*)|(\s*$)/g, "")

}

function in_array(stringToSearch, arrayToSearch) {

for (s = 0s <arrayToSearch.lengths++) {

thisEntry = arrayToSearch[s].toString()

if (thisEntry == stringToSearch) {

return true

}

}

return false

}

$(document).ready(function() {

//$("div[name=spanFor]").draggable()

$("#a").draggable({axis:'y',grid:[0,20],containment:'parent'})

})

</script>

</head>

<body>

<div id = "a" ></div>

<textarea name="fbaddress" cols="100" rows="5" id="qx">19880101|名字1

19880102|名字2

19880103|名字3

19880104|名字3</textarea>

<input type="button" name="Submit1" value=" 编号 " onclick="get()" class="inputbtn" /><br>

在保证别的功能不变的情况下 实现上移下移

</body>

</html>