[英]how to remove object property and take specific values from array by jQuery
[英]Remove all values after specific one from array with jquery
考慮到轉換為數組的一周中的某天的列表,單擊該數組便可以從數組中提取其中的任何值。 但是,我找不到有關如何刪除數組中單擊的值之后的所有值的任何信息:
friday
li時,刪除#saturday
和#sunday
如果您知道該怎么做,請告訴我,並提前感謝大家的時間和關注。
HTML:
<ul>
<li id="monday">Monday</li>
<li id="tuesday">Tuesday</li>
<li id="wednesday">Wednesday</li>
<li id="thursday">Thursday</li>
<li id="friday">Friday</li>
<li id="saturday">Saturday</li>
<li id="sunday">Sunday</li>
</ul>
jQuery的:
var floorIds = new Array('#monday', '#tuesday', '#wednesday', '#thursday', '#friday', '#saturday', '#sunday');
$('ul li').on('click', function() {
var which = $(this).attr('id');
var newFloorIds = floorIds;
var floorPos = newFloorIds.indexOf('#'+floorId);
newFloorIds.length = floorPos + 1;
console.log(newFloorIds, floorIds);
});
您可以在數組中找到元素的位置:
var elementPosition = floorIds.indexOf('#'+$(this).attr('id'));
然后將數組長度設置為index + 1
floorIds.length = elementPosition + 1; //as index are zero based
$('ul li').on('click', function() { var floorIds = new Array('#monday', '#tuesday', '#wednesday', '#thursday', '#friday', '#saturday', '#sunday'); var elementPosition = floorIds.indexOf('#'+$(this).attr('id')); floorIds.length = elementPosition + 1; console.log(floorIds) });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li id="monday">Monday</li> <li id="tuesday">Tuesday</li> <li id="wednesday">Wednesday</li> <li id="thursday">Thursday</li> <li id="friday">Friday</li> <li id="saturday">Saturday</li> <li id="sunday">Sunday</li> </ul>
您可以簡單地嘗試jQuery Documentation的 .nextAll()函數。
$('#friday').nextAll('li').remove();
您可以使用splice從數組中刪除元素范圍。
以下是相同的代碼段:
var floorIds = new Array('#monday', '#tuesday', '#wednesday', '#thursday', '#friday', '#saturday', '#sunday');
$('ul li').on('click', function() {
var which = $(this).attr('id');
var index = floorIds.indexOf('#'+which);
var newArray = floorIds.splice(index + 1, floorIds.length - index);
});
您可以使用indexOf
查找值在數組中的位置,然后進行slice
以除掉該索引之外的其余部分。
var floorIds = new Array('#monday', '#tuesday', '#wednesday', '#thursday', '#friday', '#saturday', '#sunday'); $(function() { $('ul li').on('click', function() { var day = $(this).attr('id'); var newArray = floorIds.slice(0, floorIds.indexOf("#"+day)+1); console.log(newArray); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li id="monday">Monday</li> <li id="tuesday">Tuesday</li> <li id="wednesday">Wednesday</li> <li id="thursday">Thursday</li> <li id="friday">Friday</li> <li id="saturday">Saturday</li> <li id="sunday">Sunday</li> </ul>
在Javascript中,我們有一個子集數組的slice方法。 請在下面做
var floorIds = new Array('#monday', '#tuesday', '#wednesday', '#thursday', '#friday', '#saturday', '#sunday');
$('ul li').on('click', function() {
var which = $(this).attr('id);
var index = floorIds.indexOf('#'+which); //Will give the index of Element
var newArray = floorIds.slice(0, index); // Slice will provide the subset array of given indexs
});
$(document).on('click','ul li',function(){
var array = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var index = array.indexOf($(this).text());
array.length=index+1;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.