使用jquery从数组中删除特定值后的所有值

时间:2017-06-16 09:58:02

标签: javascript jquery html arrays

考虑到转换为数组的一周中的日期列表,我可以在点击它时从数组中提取其中任何一个的值。 但是,我找不到任何关于如何删除数组中单击的值之后的所有值的信息:

  • 例如,点击标识为public static int variable;
  • 的li时,请移除CommonClassName.variable = 1; #saturday

如果您知道怎么做,请告诉我,并提前感谢您的时间和关注。

HTML:

#sunday

jQuery的:

friday

6 个答案:

答案 0 :(得分:3)

您可以在数组中找到元素位置:

var elementPosition = floorIds.indexOf('#'+$(this).attr('id'));

然后将数组长度设置为索引+ 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>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您只需尝试jQuery Documentation的.nextAll()函数。

$('#friday').nextAll('li').remove();

答案 2 :(得分:0)

您可以使用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); 
});

答案 3 :(得分:0)

您可以使用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>

答案 4 :(得分:0)

在Javascript中,我们有一个子集Array的切片方法。请在下面的chages

 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
});

答案 5 :(得分:0)

$(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;
});