0
<div id="values">10 67 87 100 56</div>

<div id="#val1">87</div>

单击带有 jquery 的#val1 时,如何从数组中删除 87 值?

4

4 回答 4

3

另一种方法可能是这样的:

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

在这里看小提琴

于 2012-11-18T10:57:19.663 回答
2

尝试类似的东西

var y = [10, 67, 87 ,100 ,56] //or $("#values").text().split(' ');
var removeItem = 67;

y = jQuery.grep(y, function(value) {
  return value != removeItem;
});

提琴手

于 2012-11-18T10:46:55.983 回答
2

好吧,您在这里并不是真的在谈论数组。只是<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(' '));
于 2012-11-18T10:47:29.937 回答
1

如果#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/

于 2012-11-18T11:03:22.130 回答