jQuery如何在ul中切换li的位置
jQuery how to switch li position inside of ul
我有一个无序列表,里面有一堆li。
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
</ul>
,我想实现的是,如果我点击<li>item 2</li>
,它会与<li>item 1</li>
交换索引,另一个词项目2变成了项目1,如果我点击新的项目2,它必须再次切换,并保持循环,只要项目2被点击。对于3,4和5,6也是一样
如果您希望在配对项(即1- 2,3 - 4,5 -6等)之间进行切换ONLY
在这里工作
$('ul li').on('click', function(e){
var index = $(this).index(); // Index of clicked item
var temp = $(this).html(); // Contents of clicked item
var partner; // The paired element
if((index+1) % 2 == 0) { // Even
partner = $(this).parent().find('li').get(index-1);
}else { // Odd
partner = $(this).parent().find('li').get(index+1);
}
// Put this in a try/catch to not throw errors for unmatched list items
// (i.e. a list with 9 items, and then clicking on the 9th)
try{
$(this).html(partner.innerHTML);
$(partner).html(temp);
}catch(e) {}
});
- 获取点击项的索引和内容
- 判断点击是奇数还是偶数
- 分配合适的伙伴元素
- 交换内容(如果伙伴元素存在)
按照相同的模式切换您想要的任何项
你的描述不是很清楚,就像charlietfl说的,你应该提供任何代码,你试图这样做,而不仅仅是html,因为你把它标记为javascript,无论如何你可以尝试这样的东西:
$("ul").on( "click", "li" , function(){
var text = $(this).text();
$(this).remove();
$("ul").prepend("<li>"+text+"</li>");
});
insertBefore()
和insertAfter()
的解
// add attributes to elements for pairing
$('li').each(function(i) {
var partner = i % 2 == 0 ? i + 1 : i - 1
$(this).attr({ id: i,'data-index': i,'data-partner': partner})
}).click(function() {
var $el = $(this),
currIdx = $el.index(),
origIdx = $el.data('index'),
partnerIdx = $el.data('partner'),
dir;
if (currIdx != origIdx) {
dir = partnerIdx > origIdx ? 'After' : 'Before'
} else {
dir = partnerIdx > origIdx ? 'Before' : 'After'
}
$('#' + partnerIdx)['insert' + dir](this)
});
如果合作伙伴没有可用的jQuery选择器在结束时将悄悄地失败
演示lol的id
$("#lol li:odd").click(function()
{
var $preSibiling = $(this).prev(),
prevValue = $preSibiling.text(),
presentValue = this.innerText;
$preSibiling.text(presentValue);
this.innerText = prevValue;
})
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- 修复列表的绝对位置(li's隐藏在前两个后面)
- 根据 LI 位置添加类
- 按字符串名称移动下拉列表中li的位置
- jQuery如何在ul中切换li的位置
- 如何使用jQuery在任意位置的UL中添加LI
- 获取li jQuery的位置
- 用于li标签onclick位置的Javascript
- 获取每个li的x和y位置'在Angular的列表中
- 工具提示css在li中的位置adsolution