用于newebies的Javascript Object.defineProperty()

用于newebies的Javascript Object.defineProperty(),javascript,Javascript,我需要创建一个没有id的元素的属性。我的意思是: var createdElement = document.createElement('div'); Object.defineProperty(createdElement, 'id', 'someId'); 第一条路 您可以使用Javascript中的.createElement()实现这一点。所以您不需要Object.defineProperty() 在这里,它正在使用: var btn = document.createElement

我需要创建一个没有id的元素的属性。我的意思是:

var createdElement = document.createElement('div');
Object.defineProperty(createdElement, 'id', 'someId');
第一条路 您可以使用Javascript中的.createElement()实现这一点。所以您不需要Object.defineProperty()

在这里,它正在使用:

var btn = document.createElement("BUTTON");
btn.setAttribute("id", "uniqueIdentifier");

第二条路 您还可以通过.ID()设置ID,例如:

HTML


JS

var abcElements=document.querySelectorAll('.abc');
//设置他们的ID
对于(var i=0;i
这将为每个元素分配ID“abc-”。所以结果是这样的:

<div class="abc" id="abc-0"></div>
<div class="abc" id="abc-1"></div>
var createdElement = document.createElement('div');
Object.defineProperty(createdElement, 'id', {
  value:'someId',
  enumerable: true,
  writable: true
});


对你的问题的评论
顺便说一句,学会写一个更好的题目。

严格地回答你的问题,你使用的方式是错误的。应该是这样的:

<div class="abc" id="abc-0"></div>
<div class="abc" id="abc-1"></div>
var createdElement = document.createElement('div');
Object.defineProperty(createdElement, 'id', {
  value:'someId',
  enumerable: true,
  writable: true
});
也就是说,这是一个完全奇怪的方式来实现你想要的。您可以简单地执行以下操作:

var createdElement = document.createElement('div');
createdElement.id = 'someId';

你还没问过问题。你在找教程吗?有没有一件你曾经尝试去完成但没有成功的事情?如果是,如何传递?请看一看:如果使用defineProperty,则需要传递描述符对象(
{value:x,enumerable:true}
),而不仅仅是属性值。如果只想设置属性值,可以执行标准属性赋值(
x.y=z
)。一个属性的负性和其他属性的帮助性。谢谢,没有问题@Toffer
var=
是无效的JavaScript。使用
setAttribute
是奇数。只分配给属性(如果可用,比如本例中的
.id
就是这样)是最佳做法。@Gary错过了,很抱歉