<div id="values">10 67 87 100 56</div>
<div id="#val1">87</div>
单击带有 jquery 的#val1 时,如何从数组中删除 87 值?
另一种方法可能是这样的:
$(function () {
$("#val1").click(function() {
var arr = $("#values").text().split(" "); // Create an array of the values
var toRemove = $(this).text(); // Get the value to remove
// Remove the value
arr = $.grep(arr, function(value) {
return value != toRemove;
});
// Add the new array back as text (without the removed value)
$("#values").text(arr.join(" "));
});
});
尝试类似的东西
var y = [10, 67, 87 ,100 ,56] //or $("#values").text().split(' ');
var removeItem = 67;
y = jQuery.grep(y, function(value) {
return value != removeItem;
});
好吧,您在这里并不是真的在谈论数组。只是<div>
元素中的一些文本值。
你可以做的是从这样的现有值创建一个数组 -
var selection = $("#val1").text();
var divValues = $("#values").text().split(' ');
然后组装一个新数组,该数组仅包含与所选值不匹配的值(在本例中87
)。
var newValues = [];
$.each(divValues,function(index,value){
if (value != selection){
newValues.push(value);
}
});
现在我们将数组值重新连接在一起,以返回我们之前提取的文本内容。
$("#values").text(newValues.join(' '));
如果#values
包含由空格分隔的类似数组的数据,那么您可以执行以下操作:
$('#val').click(function () {
var delVal = $("#val").text();
var arr = $("#values").text().split(' ');
$("#values").html("");
for (i = 0; i < arr.length; i++) {
if (arr[i] != delVal)
$("#values").append(arr[i] + " ");
}
});
在 jsFiddle 中检查:http : //jsfiddle.net/Milian/buNaM/