0

它是 javascript 中的一个脚本,它添加一个<div></div>并添加一个 id、一个类、html .. 我也想添加 name 属性,但我的代码不起作用,但我想知道为什么..

我看到有https://developer.mozilla.org/fr/DOM/elementelement.name = 'newname';可以编辑它..

function newgroup() {
    var e = document.getElementsByName('group');
    var nb = e.length + 1
    div = document.createElement("div");
    div.id = 'group'+nb;
    div.className = 'panel_drop';
    div.name = '1';
    div.innerHTML = '<h5>Group '+nb+'</h5>';
    div.innerHTML += '<div class=\'drop_zone\'></div>';
    document.getElementById('groups').appendChild(div);

}
4

2 回答 2

5

一个 HTML 元素的name属性并不会映射到name所有元素对应的 DOM 元素的属性,而只是针对某些类型的元素,而 DIV 元素不是其中之一。

name您可以在此处检查属性指定的 HTML 元素类型:http: //www.whatwg.org/specs/web-apps/current-work/multipage//section-index.html#attributes-1

由于 HTML 标准没有name为 DIV 元素指定属性,因此我的建议是不要在 DIV 元素上使用这样的属性/属性。如果您需要将其他信息附加到您的 DIV 元素,请考虑data-*属性。

于 2012-07-29T13:38:30.610 回答
3
div.setAttribute('name', '1');

div.getAttribute ('class')也作为方便函数导出为className属性(带有隐式 setter 和 getter)这一事实并不意味着它是处理 DOM 节点属性名称的一致方式。

顺便说一句,考虑使用 javascript 框架,如 jQuery、Prototype、MooTools 或 YUI,从长远来看会有所帮助......

例如,使用 Jquery,您可以通过更改删除属性轻松地更好地控制属性

于 2012-07-29T13:39:10.640 回答