我正在尝试使用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.
从元素中删除属性的正确方法是什么?
注意:使用属性替换属性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) 我需要找到$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)
任何帮助或建议将不胜感激!
谢谢!
我有一个看起来像这样的对象.
{
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)
有人可以建议一个很好的方法来做到这一点
假设我有一个对象和一个函数,它接受一个更新对象并返回一个新对象,其中第一个对象和更新对象如下所示:
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 键/值对?
谢谢
我有<select>几个我的HTML页面上<option>S; 某些选项被禁用(未禁用选择).我可以设置禁用选项的样式:
select option:disabled
{
color: red;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果禁用,我还想设置所选项目的样式.用户无法进入此状态,但可以在此状态下提供页面.
如果禁用所选项目,如何设置选择样式?
我有一个像这样的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对象中删除属性?,我的问题集中在'嵌套'部分.
我有一个像这样的对象.
var Obj = {
obj1 : {
val : 1,
id : 1
}
obj2 : {
val : 2,
id :2
}
obj3 : {
val : 3,
id :3
}
}
Run Code Online (Sandbox Code Playgroud)
我想删除obj1,任何人都可以建议如何实现这一点.
我正在编写一个node-red的函数节点,它接受一个带有任意键值对的JSON对象:
{ 30000c690b61: "m8Jp_M7Lc0",
30000c290bdc65: "S3qg3Rkl8Y",
30000c290bdf1c: "KsLpfVrR4W",
30000c290be5d0: "oXasuCWV_q",
30000c29e618: "6Q67v-gJkS" … }
Run Code Online (Sandbox Code Playgroud)
我想访问此对象中的第一个键对元素,存储它,然后将其删除.我尝试了很多东西,但由于它是节点红色,它似乎表现不同
如何从构造函数中删除函数?
如果greet在Person构造函数中调用了一个函数,我该如何删除该函数?
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) 给定数组[{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)