首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getElementsByName是哪个名字?

getElementsByName是哪个名字?
EN

Stack Overflow用户
提问于 2013-09-19 04:22:45
回答 3查看 268关注 0票数 0

我正在javascript中创建一组div,并希望在某个时候删除所有div。

我的代码是这样的:

代码语言:javascript
复制
function CreateDiv(width, height, row, col){
var thisTile = document.createElement("div");
thisTile.style.position = "absolute";
thisTile.style.width = width + "px";
thisTile.style.height = height + "px";
thisTile.style.top = row*TileH + topMargin + "px";
thisTile.style.left = col*TileW + leftMargin +"px";
thisTile.style.backgroundImage = "url(" + imagePath + ")";
thisTile.style.backgroundSize = imageWidth + "px " + imageHeight +"px";
thisTile.style.backgroundRepeat = "noRepeat";
thisTile.style.backgroundPosition =  "-" + col*TileW + "px -" + row*TileH + "px";
thisTile.onclick = TileClicked;
thisTile.name = "tiles";
document.body.appendChild(thisTile);
return thisTile;
}
...
var tmp = document.getElementsByName("tiles");
alert("tmp length: " + tmp.length);
for (var i = 0; i < tmp.length; i++)
document.body.removeChild(tmp[i]);

但是每次tmp是一个空数组,所以我不能实际删除我想要的div,

我试着改变

代码语言:javascript
复制
tile.name = "tiles"

代码语言:javascript
复制
tile.nodeName = "tiles"

代码语言:javascript
复制
tile.className = "tiles"

但是它们都没有起作用,我只是想知道元素的名称、属性或属性究竟是getElementsByName中的名称、属性还是属性?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-19 04:36:45

实际上,DIV标记没有名称属性。

请查阅下列参考资料:

div.asp

给div一个特定的class并访问它,然后使用:

代码语言:javascript
复制
elements = document.getElementsByClassName(className)
票数 0
EN

Stack Overflow用户

发布于 2013-09-19 05:17:58

method返回一个具有name属性的元素列表,该属性具有给定的值,但仅用于HTML规范允许使用该属性的元素。而div不在其中。

实际上,这有点复杂。现代浏览器(包括IE 10)实际上实现了它,这样就可以考虑HTML标记中具有name属性的所有元素,即使标记被HTML规范(如<div name=tiles>foo</div> )所无效。但不包括在JavaScript中只将JavaScript属性分配给它们的元素。不同之处在于,标记属性还会导致将信息添加到attributes对象中。

因此,如果您真的非常非常想在这里使用name (您不应该),您可以替换

代码语言:javascript
复制
tile.name = "tiles"

通过

代码语言:javascript
复制
thisTile.setAttribute("name", "tiles");

而且它仍然不能在IE9和更高版本上工作。

从问题中的目的描述来看,如果以后需要删除元素,则应该只收集添加的元素数组。也就是说,除了在文档中添加一个元素之外,还会将其附加到创建的数组中,然后,当需要删除它们时,只需遍历数组。

票数 1
EN

Stack Overflow用户

发布于 2013-09-19 06:09:10

在您的代码中,您使用了以下代码,包括tiles-

代码语言:javascript
复制
thisTile.name = "tiles";

代码语言:javascript
复制
var tmp = document.getElementsByName("tiles");

但是,您必须使用tiles[]代替tiles来使tiles成为一个元素数组。这是代码中唯一的错误。如果您更改这两条语句,您的代码将运行良好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18886149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档