我正在尝试通过它的名称来选择一个元素"属性,它不起作用。在控制台中,我收到以下错误:
VM777:1未捕获的TypeError:无法读取属性' tagName'未定义的
我的代码是:
#pragma pack(push, 1)
struct bitmap_header {
uint16_t FType;
uint32_t FSize;
uint16_t Reserved_1;
uint16_t Reserved_2;
uint32_t BitmapOffset;
uint32_t Size;
int32_t Width;
int32_t Height;
uint16_t Planes;
uint16_t BitsPerPixel;
uint32_t Compression;
uint32_t SizeOfBMP;
int32_t HorzResolution;
int32_t VertResolution;
uint32_t ColorsUsed;
uint32_t ColorsImportant;
};
#pragma pack(pop)
当我在Chrome控制台中运行它时,似乎此代码应该可以正常工作。
答案 0 :(得分:2)
当您编写document.getElementsByName("parameterstest")[0].tagName;
时,它会返回一个包含该元素标记名称的字符串。您无法在该字符串上应用样式属性。您可以在像document.getElementsByName("parameterstest")[0]
所以它应该是
var test = document.getElementsByName("parameterstest")[0];
test.style.display='none';
答案 1 :(得分:0)
正如人们所指出的,使用.tagName
只返回标记名称的字符串,如“TEXTAREA”或“DIV”,并且不能在字符串上设置样式。
您似乎想要做的是在所有选定的事物上设置样式,您可以对每个项目进行设置。
document.getElementsByName("parameterstest")
将返回零个或多个项目的数组。对于像<input type="text" name="...">
这样的东西,它可能是一个项目;对于<input type="radio" name="...">
,它可能是几个项目。
无论返回多少项,您都可以使用数组的.forEach
方法对所有项应用。
document.getElementsByName('parameterstest')
.forEach(function(el) {
el.style.display = 'none';
});