我将新表单元素添加到可排序列表中。当重新排列列表时,我会像ID一样连续。代码到目前为止:
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
var counter = 1;
$('a').click(function () {
var elems = '<li>'
'<input name="q_' + counter + '" type="text"/>' +
'<select name="type_' + counter + '" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>' +
'</li>' ;
$('#sortable').append(elems);
counter++;
return false;
});
这将生成一个包含连续ID的列表,这些ID在重新排列时会不同步。如何使用jquery遍历列表并重新分配元素ID?
答案 0 :(得分:4)
将该功能放在update
回调
$( "#sortable" ).sortable({
update: function(event, ui) {
$('select').each(function(index){
$(this).attr('id', index + 1);
});
}
});
答案 1 :(得分:1)
您可以使用change
事件。
$("#sortable").sortable({
change: function(event, ui) {
// reset all the IDs
$.each($('select'), function(i, v) {
this.id = "type_" + i; // or the "name" attribute?
});
}
});