相关疑难解决方法(0)

如何使用Javascript从DOM元素中删除属性?

我正在尝试使用javascript从DOM节点中删除属性:

<div id="foo">Hi there</div>
Run Code Online (Sandbox Code Playgroud)

首先我添加一个属性:

document.getElementById("foo").attributes['contoso'] = "Hello, world!";
Run Code Online (Sandbox Code Playgroud)

然后我删除它:

document.getElementById("foo").removeAttribute("contoso");
Run Code Online (Sandbox Code Playgroud)

除了属性仍然存在.

那么我试着真正删除它:

document.getElementById("foo").attributes['contoso'] = null;
Run Code Online (Sandbox Code Playgroud)

现在它是null,它与它开始时不同,这是undefined.

从元素中删除属性的正确方法是什么?

jsFiddle游乐场

注意:使用属性替换属性contoso,required您将了解我正在尝试做什么.

州表

                       foo.attributes.contoso  foo.hasAttribute("contoso")
                       ======================  ===========================
Before setting         undefined               false
After setting          Hello, world!           false
After removing         Hello, world!           false
After really removing  null                    false
Run Code Online (Sandbox Code Playgroud)

html javascript

13
推荐指数
1
解决办法
1万
查看次数

使用JavaScript以递归方式从对象中删除属性和值的最快方法是什么?

我需要找到$meta从对象中删除所有属性及其值的最快方法,例如:

{
  "part_one": {
    "name": "My Name",
    "something": "123",
    "$meta": {
      "test": "test123"
    }
  },
  "part_two": [
    {
      "name": "name",
      "dob": "dob",
      "$meta": {
        "something": "else",
        "and": "more"
      }
    },
    {
      "name": "name",
      "dob": "dob"
    }
  ],
  "$meta": {
    "one": 1,
    "two": 2
  }
}
Run Code Online (Sandbox Code Playgroud)

应该成为以下内容,因为$meta属性可能位于对象中的任何位置,因此可能需要某种形式的递归.

{
  "part_one": {
    "name": "My Name",
    "something": "123"
  },
  "part_two": [
    {
      "name": "name",
      "dob": "dob"
    },
    {
      "name": "name",
      "dob": "dob"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议将不胜感激!

谢谢!

javascript recursion object javascript-objects

11
推荐指数
3
解决办法
9386
查看次数

删除对象的一个​​属性

我有一个看起来像这样的对象.

{
par1: 'par1value',
par2: 'par2value',
par3: 'par3value'
};
Run Code Online (Sandbox Code Playgroud)

我想删除被调用的属性par1并单独保存它所以它看起来像这样

var par1 = 'par1value';

{
par2: 'par2value',
par3: 'par3value'
};
Run Code Online (Sandbox Code Playgroud)

有人可以建议一个很好的方法来做到这一点

javascript jquery

8
推荐指数
1
解决办法
1万
查看次数

如何从扩展运算符返回中排除一个键/值对

假设我有一个对象和一个函数,它接受一个更新对象并返回一个新对象,其中第一个对象和更新对象如下所示:

const object = {
    id: 1,
    value: 'initial value'
}

const updateFunction = (updates) => {
    return {
        ...object,
        ...updates
    }
}

const updatedObject = updateFunction({
    id: 2,
    value: 'updated value'
})
Run Code Online (Sandbox Code Playgroud)

使用扩展运算符有一种简单的方法可以将 id 排除在扩展之外,从而更新它,因为我知道我绝对不能更改我的 updateFunction 以接受多个参数

编辑:在评论中有人提出了一个简单的解决方案,如下所示:

 return {...object, ...updates, id: object.id};
Run Code Online (Sandbox Code Playgroud)

但是假设由于某种原因我们无法访问第一个对象的 id 值,有没有办法从传播中排除 id 键/值对?

谢谢

javascript spread-syntax

8
推荐指数
1
解决办法
6493
查看次数

禁用所选选项时选择样式文本

我有<select>几个我的HTML页面上<option>S; 某些选项被禁用(未禁用选择).我可以设置禁用选项的样式:

select option:disabled
{ 
    color: red;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果禁用,我还想设置所选项目的样式.用户无法进入此状态,但可以在此状态下提供页面.

如果禁用所选项目,如何设置选择样式?

html css

7
推荐指数
1
解决办法
2856
查看次数

删除javascript对象中的嵌套属性

我有一个像这样的JS对象:

var tenants = {
    'first': {
        'name': 'first',
        'expired': 1
    },
    'second': {
        'name': 'second'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想删除"第一个"租户的"过期"属性,我应该这样做吗?

delete tenants['first']['expired'];
Run Code Online (Sandbox Code Playgroud)

注意:这个问题比问题更具体:如何从JavaScript对象中删除属性?,我的问题集中在'嵌套'部分.

javascript

7
推荐指数
4
解决办法
1万
查看次数

如何删除嵌套对象属性

我有一个像这样的对象.

var Obj = {
    obj1 : {
        val : 1,
        id : 1
    }
    obj2 : {
        val : 2,
        id :2
    }
    obj3 : {
        val : 3,
        id :3
    }
}
Run Code Online (Sandbox Code Playgroud)

我想删除obj1,任何人都可以建议如何实现这一点.

javascript oop object

7
推荐指数
1
解决办法
1322
查看次数

如何在不知道密钥的情况下获取JSON对象的第一个密钥对元素,并在节点红色中删除它

我正在编写一个node-red的函数节点,它接受一个带有任意键值对的JSON对象:

{ 30000c690b61: "m8Jp_M7Lc0",
  30000c290bdc65: "S3qg3Rkl8Y", 
  30000c290bdf1c: "KsLpfVrR4W", 
  30000c290be5d0: "oXasuCWV_q", 
  30000c29e618: "6Q67v-gJkS" … }
Run Code Online (Sandbox Code Playgroud)

我想访问此对象中的第一个键对元素,存储它,然后将其删除.我尝试了很多东西,但由于它是节点红色,它似乎表现不同

javascript json node-red

6
推荐指数
2
解决办法
1万
查看次数

如何从构造函数中删除函数?

如何从构造函数中删除函数?

如果greetPerson构造函数中调用了一个函数,我该如何删除该函数?

function Person(name)
{
    this.name = name;
    this.greet = function greet()
    {
        alert("Hello, " + this.name + ".");
    };
}
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

function Person(name)
{
    this.name = name;
}
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
1505
查看次数

如何通过对象的属性从对象数组中删除特定的对象?

给定数组[{GUID,other properties},...],

如何通过GUID(或任何对象属性)从javascript数组中删除特定对象?

我正在尝试使用splice()

var index = game.data.collectedItems.indexOf(entityObj.GUID);
if (index > -1) {
    game.data.collectedItems.splice(index, 1);
}
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为我无法直接识别数组中的值,如下所示:

var array = [2, 5, 9];
var index = array.indexOf(5);
Run Code Online (Sandbox Code Playgroud)

如图所示:如何从JavaScript中的数组中删除特定元素?

javascript arrays

5
推荐指数
1
解决办法
933
查看次数