我还是jQuery的新手,需要一些帮助。
我正在使用拖放脚本,如下所示。
$(document).ready(function() {
$(function() {
$("#contentLeft ul").sortable({
opacity: 0.6,
cursor: 'move',
update: function() {
var order = $(this).sortable("serialize") + '&action=updateRecordsListings';
$.post("updateDB.php", order, function(theResponse) {
$("#contentRight").html(theResponse);
});
}
});
});
});
一旦拖放完成并且php服务器端脚本已经解析,theResponse就会包含一个动态数组,如下所示。
Array
(
[0] => 3
[1] => 4
[2] => 1
[3] => 2
)
我需要做的是一旦我有了响应 - 重命名相应div的div ID,所以最上面的一个会得到questionOrder_0,下一个问题是下一个问题或者下一个问题或者等等。
页面加载的div是动态创建的,如下所示。
<div id="questionOrder_0" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_1" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_2" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_3" class="questionHolder"> ...some stuff here ... </div>
但是一旦我拖拽它就会喜欢这个,如果我移动说div#questionOrder3到顶部:
<div id="questionOrder_3" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_0" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_1" class="questionHolder"> ...some stuff here ... </div>
<div id="questionOrder_2" class="questionHolder"> ...some stuff here ... </div>
php脚本更新的数据库会相应更改,但我需要在发生丢弃后更改div ID。
我希望这是有道理的。
答案 0 :(得分:1)
这是一个简单的例子,可以帮助您顺利前进。 http://jsfiddle.net/LcK8G/5/
var a = ['a','b','c','d'];
//loop through each div, change selector for your needs
$('div').each(function(i,el){
$el = $(el); //grab this iterations element and make a jQuery object out of it
$el.attr('id',a[i]); //change the elements id based on this iterations index
//this just displays the id for you to see how it is working, would be removed later
$el.text($el.attr('id')); /=
});
答案 1 :(得分:0)
我不完全理解为什么你想操纵ID。
如果在任何给定时间为任何两个元素分配了相同的ID,则可能会遇到冲突。
最好在服务器端进行一些排序,或者用JS代替序列化。