Javascript 确定相关元素是高于还是低于
我有一个包含多个元素的无序列表,我使用jquery sortable来移动项目-以下是我的标记:Javascript 确定相关元素是高于还是低于,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我有一个包含多个元素的无序列表,我使用jquery sortable来移动项目-以下是我的标记: <ul> <li id=1>item 1</li> <li id=2>item 2</li> <li id=3>item 3</li> <li rel=2>insert</li> <li id=4>item 4</li> <
<ul>
<li id=1>item 1</li>
<li id=2>item 2</li>
<li id=3>item 3</li>
<li rel=2>insert</li>
<li id=4>item 4</li>
</ul>
- 第1项
- 第2项
- 第3项
- 插入
- 第4项
“插入”元素与ID为2的LI相关-我的问题:
确定相关项目是在“插入”元素之上还是之下的最佳实践是什么?(在本例中:如上所述)
您可以为此使用jquery的nextAll
和prevAll
函数。此处$(this)指的是插入元素。您可以使用获取元素的位置,并将其与其他元素进行比较:
inserted=$('li[rel=2]');
$('ul li')。单击(函数(){
if(inserted.index()>$(this.index()){
log('Clicked元素位于上方');
}else if(inserted.index()<$(this.index()){
log('单击的元素在下面');
}
});代码>
- 第1项
- 第2项
- 第3项
- 插入
- 第4项
我猜你是说jquery ui可排序?Core jquery没有可排序项假设列表是垂直的,您可以比较元素索引(较低表示较高),或者您可以使用offset().top
比较顺序位置。或者,您可以使用nextAll()
和prevAll()
,但它们涉及到在所有同级之间循环。基本上,jQuery的可排序特性有一个.toArray()方法,该方法将跟踪移动、插入和删除的项索引。
if($(this).prevAll("[id=2]").length > 0)
{
//element is above
}
if($(this).nextAll("[id=2]").length > 0)
{
//element is below
}