我有div
,它包含一個無序列表。該列表可以具有任意數量的列表項目。使用JQuery刪除列表項
該div的高度是200px
。
我想刪除多於200px
的額外列表項。
<div style="height:200px;">
<ul>
<li>value1</li>
<li>value2</li>
<li>value3</li>
<li>value4</li>
<li>value5</li>
<li>value6</li>
...
...
</ul>
</div>
我有div
,它包含一個無序列表。該列表可以具有任意數量的列表項目。使用JQuery刪除列表項
該div的高度是200px
。
我想刪除多於200px
的額外列表項。
<div style="height:200px;">
<ul>
<li>value1</li>
<li>value2</li>
<li>value3</li>
<li>value4</li>
<li>value5</li>
<li>value6</li>
...
...
</ul>
</div>
$(function() {
if ($('ul').height() > 200)
for(var i = $('ul li').length;i>0;i--)
if($('ul').height() > 200)
$('ul li').eq(i).remove();
else break;
});
你可以做這樣的事情:
while($("ul").height() > 200)
{
$("ul").remove($("ul li:last-child"));
}
編輯:
確保你的清單上的溢出設置爲auto,否則它可能不報告正確的身高。
例如在CSS:
ul {
overflow:auto;
}
var counter = 0;
$("ul li").each(function() {
$this = $(this);
counter += $this.height();
if(counter > 200) $this.remove();
});
只需添加overflow: hidden
您div
元素,它不會真正刪除你的元素,但它會隱藏起來。
<div style="height:200px; overflow: hidden;">
remove!= hidden 。 – lifetimes
嘗試
var $div = $('div'), $ul = $div.find('ul');
$.each($ul.find('li').get().reverse(), function(){
if($ul.outerHeight(true) > $div.innerHeight()){
$(this).remove();
} else {
return false;
}
});
演示:Fiddle
試試這個:
<div style="height: 200px;position:absolute;">
<ul>
<li id="Li1">value1</li>
<li id="Li2">value1</li>
<li id="Li3">value1</li>
<li id="Li4">value1</li>
<li id="Li5">value1</li>
<li id="Li6">value1</li>
<li id="Li7">value1</li>
<li id="Li8">value1</li>
<li id="Li9">value1</li>
<li id="Li10">value1</li>
<li id="Li11">value1</li>
<li id="Li12">value1</li>
<li id="Li13">value1</li>
<li id="Li14">value1</li>
<li id="Li15">value1</li>
<li id="Li16">value1</li>
<li id="Li17">value1</li>
<li id="Li18">value1</li>
<li id="Li19">value1</li>
<li id="Li20">value1</li>
<li id="Li21">value1</li>
<li id="Li22">value1</li>
<li id="Li23">value1</li>
<li id="Li24">value1</li>
<li id="Li25">value1</li>
<li id="Li26">value1</li>
</ul>
</div>
<script type="text/javascript">
$('div li').each(function() {
var thi_li = $(this);
if (thi_li.position().top >= 200)//li that after 200px heigth
{ thi_li.remove(); }
})
</script>
也許你可以使用溢出屬性。在div的style屬性中放置「overflow:hidden」。它會隱藏一切超過div高度和寬度的東西。 – Tamara
@Tamara:設置溢出屬性與刪除元素相同嗎? –
建議:不要刪除添加滾動http://jsfiddle.net/xabUj/ – xyz