如何在JavaScript中将某些元素值设置为null

时间:2011-04-10 06:50:14

标签: javascript

我有一些项目存放在一个元素中,可以在不同时间添加,如下所示:

document.getElementById('rout_markers').value = str;

我对JavaScript不太好,但据我所知,这些值存储为数组,对吗?

我需要做的是能够删除所有元素或能够删除添加的最后一个元素。

我该怎么做? 谢谢!

3 个答案:

答案 0 :(得分:2)

  

我对JavaScript不太好,但据我所知,这些值存储为数组,对吗?

不,某些HTML元素的value property只是一个字符串值。 (并且它仅存在于某些元素上,例如input。)为value分配新值将覆盖先前的值,而不是将其存储在数组中。

  

我需要做的是能够删除所有元素或能够删除添加的最后一个元素。

由于第一部分的答案,这部分问题有点消失,但您可以通过为其分配空字符串来清除value属性。

答案 1 :(得分:2)

如果你要为一个元素分配str,那么这里不涉及任何数组 - 你将用最新的值覆盖每个先前分配的值,从而只存储最新值。

可能使用数组,但你必须知道数组中每个项目的位置,所以如果你想分配或取消数组中的特定元素,你就会有记录它的位置 - 虽然你可以用多维数组来解决它,其中每个索引的第一个元素是属性的名称,每个索引的第二个元素是该值的值。属性。

如果你想在一个字段中存储多个属性以便以后检索它们,有两种简单的方法可以做到这一点。

  1. 考虑为每个属性使用一个字段。 如果您这样做,那么我建议使用字段的命名约定,以便您可以更轻松地分配属性。

  2. 连接字符串以形成键值对的集合,非常类似于查询字符串。 在你给出的例子中,这意味着存储类似的东西:

  3. var keyVals = 'route_markers' + '=' + str + '&'; document.getElementById('myHiddenProperties').value = keyVals;

    如果要为此字符串指定其他属性,请执行以下操作:

    keyVals = document.getElementById('myHiddenProperties').value;
    keyVals += 'new_property' + '=' + myNewValue + '&';
    document.getElementById('myHiddenProperties').value = keyVals;
    

    通过这种方式,如果要删除特定的键值对,可以像这样拆分存储的值

    var arrKeyVals = document.getElementById('myHiddenProperties').value.split('&');
    

    然后你有一组键值对。

    如果你想从这个数组中检索一个值,或者空白其中一个值,那么循环遍历这个数组,将每个值分成它的键和值,如下所示:

    for (var i = 0; i < arrKeyVals.length; i++) {
        var keyVal = arrKeyVals[i].split('=');
        var key = keyVal[0];
        var val = keyVal[1];
        if (key == name_of_key_sought) {
            val = ''; //assign an empty string to this property to forget about it
        }
    }
    

答案 2 :(得分:1)

如果你的意思是删除/隐藏元素本身(文本框),那么你可以拥有这样的代码:

document.getElementById('rout_markers').style.display = 'none';

否则这里的其他答案很好地涵盖了它。