如何使用JavaScript为元素设置内联css样式?

时间:2017-10-31 19:58:02

标签: javascript html css

我正在尝试通过它的名称来选择一个元素"属性,它不起作用。在控制台中,我收到以下错误:

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控制台中运行它时,似乎此代码应该可以正常工作。

2 个答案:

答案 0 :(得分:2)

当您编写document.getElementsByName("parameterstest")[0].tagName;时,它会返回一个包含该元素标记名称的字符串。您无法在该字符串上应用样式属性。您可以在像document.getElementsByName("parameterstest")[0]

这样检索的元素上使用style属性

所以它应该是

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';
                 });