假设有以下情况:
<a id="moveElementUp">Move Up</a>
<a id="moveElementDown">Move Dowm</a>
<div id="elementHolder">
<a id="element-1">1</a>
<a id="element-2">2</a>
<a id="element-3">3</a>
<a id="element-4">4</a>
</div>
<script type="text/javascript">
function reOrder (el){
// Change IDs of Elements to be Sequential
}
$('#moveElementUp').click(function(e){
// Move Clicked Element Up One Spot in List
reOrder();
});
$('#moveElementDown').click(function(e){
// Move Clicked Element Down One Spot in List
reOrder();
});
</script>使用jQuery更改元素的顺序和所有元素的ID以保持顺序顺序的最佳(也是最快的)方法是什么?
任何帮助都将不胜感激!
发布于 2011-10-24 23:21:57
这将允许您随意重新排列项目。但是,它将删除锚定标记之间的空格。您可以通过在锚标记之间添加空格(就像我在这里所做的那样:http://jsfiddle.net/FqwDc/1/ )或者使用嵌套的did来解决这个问题。
var $sel; // anchor last clicked on
var prefixstr = "element-";
$('a[id^="'+prefixstr+'"]').click(function(e) {
$sel = $(this);
});
$('#moveElementUp').click(function(e) {
// Move Clicked Element Up One Spot in List
$sel.prev().before($sel);
changeIDs($('#elementHolder'));
});
$('#moveElementDown').click(function(e) {
// Move Clicked Element Down One Spot in List
$sel.next().after($sel);
changeIDs($('#elementHolder'));
});
function changeIDs($j) { // renumber the IDs
$j.children('a').each(function(i) {
$(this).attr('id',prefixstr+i);
});
}https://stackoverflow.com/questions/7877619
复制相似问题