Javascript:如何通过 setAttribute 调用数组中的值以在 GetElementsByTagName 中使用?

标签 javascript arrays getelementsbytagname setattribute

我是一名 JavaScript 初学者,尝试在单个函数中使用 .setAttribute、数组和 GetElementsByTagName。

我想让 h1 的字体颜色根据输入的值而变化。每个值 (0-9) 对应于数组中的特定值。然后,使用多个“if”语句(或其他替代方式),我希望使用.setAttribute来更改h1标签的属性。

无论我如何调整代码,我总是收到“无法读取未定义的属性'setAttribute'”或“未定义不是函数”的消息。有时我根本没有收到任何控制台错误,但我的代码不起作用。

function change() {
var y = document.getElementsByTagName('h1').innerHTML;
var color = ["Grey", "Blue", "Green", "Red", "Pink", "Yellow", "Orange", "Indigo", "Violet", "Black"];
var x = parseInt(document.getElementById('cn').value);


	for (var i = 0; i < color.length; i++) {
    	var bgcolor = color[i];			
			if (x == 1)	{
		y.setAttribute("style", "color: blue;");
		
                        }
      		else if (bgcolor > 9){
			alert('Please enter a number from 0 to 9');	
				
			                      }
	                                        }
										
} 
    <h1>Header</h1>
    <p>
     Input a number from 0 to 9:<br>
      <input type="text" id="cn"> <br>       
      <input type="button" value="Change" onclick="change();">
    </p>
    </div>

提前谢谢您。

最佳答案

没有使用innerHtml。因为document.getElementsByTagName()是基于索引的,它将返回页面more info on this的所有h1元素的数组。 。由于这里只有一个 h1 元素,所以你应该写

var y = document.getElementsByTagName('h1')[0];

此外,最好在函数调用之外初始化数组 color[]

    var y = document.getElementsByTagName('h1')[0];

    var color = ["Grey", "Blue", "Green", "Red", "Pink", "Yellow", "Orange", "Indigo", "Violet", "Black"];


    function change() {
            var x = parseInt(document.getElementById('cn').value);
            var clr='color:'+color[x];
            y.setAttribute('style',clr);


    };

关于Javascript:如何通过 setAttribute 调用数组中的值以在 GetElementsByTagName 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27780393/

相关文章:

javascript - 使用 getComputedStyle().getPropertyValue() 获取边框值? (莫斯拉,FF)

javascript - 检查一个数组是否包含 JavaScript 中另一个数组的任何元素

javascript - 如何从对象数组中的对象数组中搜索值?

python - 分割给定字节偏移量的 utf-8 编码字符串 (python 2.7)

javascript - 使用必需的表单字段填充 JavaScript 数组

javascript - 为什么 ('b' +'a'++ 'a' + 'a').toLowerCase() 'banana' 的结果是什么?

javascript - 如何在 java 和 node.js 应用程序之间共享动态属性

Javascript getElementsByTagName 不返回结果

javascript - 如何在 JavaScript 中旋转跟随光标的图像?

javascript - 在关闭特定标签之前使用 JS 选择 HTML 标签