不使用可滚动 - 我试图使用'click'向上或向下移动(嵌套)ul。但是在这个例子中:console.log = []?我知道它的丑陋,我可能不会使用它,但我更感兴趣的是为什么我不能得到'结果'的结果?
$(function(){
$('.moveUp').click(function(){
theList = $(this).parent().parent();
prevList = $(this).parent().parent().prev();
console.log(prevList);
});
});
<ul>
<li>
<div class="category-list">
<ul>
<li>Category: other</li>
<li>Edit this Category</li>
<li>Delete this Category</li>
<li class="moveUp">Move up</li>
<li class="moveDown">Move down</li>
</ul>
</div>
<div class="category-list">
<ul>
<li>Category: other</li>
<li>Edit this Category</li>
<li>Delete this Category</li>
<li class="moveUp">Move up</li>
<li class="moveDown">Move down</li>
</ul>
</div>
<div class="category-list">
<ul>
<li>Category: other</li>
<li>Edit this Category</li>
<li>Delete this Category</li>
<li class="moveUp">Move up</li>
<li class="moveDown">Move down</li>
</ul>
</div>
</li>
<li>Some other List Item</li>
<li>Ditto</li>
</ul>
答案 0 :(得分:1)
上面的列表没有prev
。其他列表似乎工作正常,控制台显示它获得前一个div。 <{1}}没有环绕,所以如果元素是第一个孩子,那么它就不会得到任何东西。
答案 1 :(得分:0)
如果你给.category-list divs和uls一个id
,这是有效的$('.moveUp').click(function(){
var theList = $(this).parent();
var theListparentId = $(this).parent().parent().attr('id');
var prevList = $(this).parent().parent().prev().children();
var prevListparentId = $(this).parent().parent().prev().attr('id');
if(prevListparentId !== undefined){
$('#'+prevListparentId).html(theList);
$('#'+theListparentId).html(prevList);
} else {
alert('No previous');
}
});
$('.moveDown').click(function(){
var theList = $(this).parent();
var theListparentId = $(this).parent().parent().attr('id');
var nextList = $(this).parent().parent().next().children();
var nextListparentId =$(this).parent().parent().next().attr('id');
if(nextListparentId !== undefined){
$('#'+nextListparentId).html(theList);
$('#'+theListparentId).html(nextList);
} else {
alert('No next');
}
});
});
正如Kingjiv所指出的,如果没有'prevList'你没有获得结果,如果没有prevListparentId !== undefined