Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中按类名获取html元素_Javascript_Html - Fatal编程技术网

如何在javascript中按类名获取html元素

如何在javascript中按类名获取html元素,javascript,html,Javascript,Html,我想获得类fontsizer的两个html按钮。我需要创建一个变量,将按钮存储在变量中,然后循环遍历该变量,并为两个按钮中的每一个分配一个事件处理程序,用于onclick。最后,单击按钮时,它应该运行名为resizeText的方法 以下是我的JavaScript代码: function startup() { var fontButtons = document.getElementsByClassName("fontsizer"); var i; alert(fontB

我想获得类
fontsizer
的两个html按钮。我需要创建一个变量,将按钮存储在变量中,然后循环遍历该变量,并为两个按钮中的每一个分配一个事件处理程序,用于
onclick
。最后,单击按钮时,它应该运行名为
resizeText
的方法

以下是我的JavaScript代码:

function startup() {
    var fontButtons = document.getElementsByClassName("fontsizer");
    var i;
    alert(fontButtons.length);
    for (i = 0; i < fontButtons.length; i++) {
        fontButtons.elements[i].onclick = resizeText(this);
    }

    function resizeText(objButton) {
        var fontChange;
        fontChange = parseFloat(objButton.value);

        if (document.body.style.fontSize == "") {
            document.body.style.fontSize = "1.0em";
        }

        var currentFontSize;
        alert("changed");
        currentFontSize = parseFloat(document.body.style.fontSize);
        currentFontSize = currentFontSize+fontChange;
        document.body.style.fontSize = "currentFontSize+em"
    }
函数启动(){
var fontButtons=document.getElementsByClassName(“fontsizer”);
var i;
警报(fontButtons.length);
对于(i=0;i

在我的浏览器中,
resizeText
函数没有运行。在循环之前检查
fontButtons
的大小时,它是
0
。我哪里出错了?

onclick的事件处理程序被分配给了undefined。这就是处理程序的外观

fontButtons[i].onclick=function(){resizeText(this);};
原因是这行代码有几个问题

fontButtons.elements[i].onclick=resizeText(this);
首先,
fontButtons
已经是一个节点列表,其中包含页面上匹配的元素,因此使用
.elements
将不包含任何元素。其次,这将为resizeText函数调用的结果分配onclick处理程序。由于函数不返回任何内容,因此分配未定义


使用匿名函数作为回调调用
resizeText
将允许创建新的执行上下文。事件处理程序创建的上下文将绑定一个新值到此
上,从而允许将创建事件的当前元素发送到
resizeText
函数。

事件处理程序onclick被分配给undefined。这是处理程序的外观

fontButtons[i].onclick=function(){resizeText(this);};
原因是这行代码有几个问题

fontButtons.elements[i].onclick=resizeText(this);
首先,
fontButtons
已经是一个节点列表,其中包含页面上匹配的元素,因此使用
.elements
将不包含任何元素。其次,这将为resizeText函数调用的结果分配onclick处理程序。由于函数不返回任何内容,因此分配未定义


使用匿名函数作为回调调用
resizeText
将允许创建新的执行上下文。事件处理程序创建的上下文将绑定一个新值到此
上,从而允许将创建事件的当前元素发送到
resizeText
函数。

事件处理程序onclick被分配给undefined。这是处理程序的外观

fontButtons[i].onclick=function(){resizeText(this);};
原因是这行代码有几个问题

fontButtons.elements[i].onclick=resizeText(this);
首先,
fontButtons
已经是一个节点列表,其中包含页面上匹配的元素,因此使用
.elements
将不包含任何元素。其次,这将为resizeText函数调用的结果分配onclick处理程序。由于函数不返回任何内容,因此分配未定义


使用匿名函数作为回调调用
resizeText
将允许创建新的执行上下文。事件处理程序创建的上下文将绑定一个新值到此
上,从而允许将创建事件的当前元素发送到
resizeText
函数。

事件处理程序onclick被分配给undefined。这是处理程序的外观

fontButtons[i].onclick=function(){resizeText(this);};
原因是这行代码有几个问题

fontButtons.elements[i].onclick=resizeText(this);
首先,
fontButtons
已经是一个节点列表,其中包含页面上匹配的元素,因此使用
.elements
将不包含任何元素。其次,这将为resizeText函数调用的结果分配onclick处理程序。由于函数不返回任何内容,因此分配未定义


使用匿名函数作为回调来调用
resizeText
将允许创建新的执行上下文。事件处理程序创建的上下文将绑定一个新值到此
上,从而允许将创建事件的当前元素发送到
resizeText
函数。

fontButtons.elements[i]应该是fontButtons[i]fontButtons。元素[i]应该是fontButtons[i]fontButtons。元素[i]应该是fontButtons[i]fontButtons[i]仍然没有变化。我认为行var fontButtons=document.getElementsByClassName(“fontsizer”);不检索元素。因为循环之前的警报显示0为元素的长度fontButtons@mungaihkamau-确保在将元素加载到DOM中后执行脚本,方法是将脚本放在页面的最底部,正好在结束body标记之前,或者将其包装在
window.onload=function(){startup();};
仍然没有更改。我认为行var fontButtons=document.getElementsByClassName(“fontsizer”);不检索元素。因为循环之前的警报显示0为元素的长度fontButtons@mungaihkamau-确保在将元素加载到DOM中后执行脚本,方法是将脚本放在页面的最底部,正好在结束body标记之前,或者将其包装在
window.onload=function(){startup();}
仍然没有更改。我认为行var fontButtons=document.getElementsByClassName(“fontsizer”);无法检索元素。因为循环之前的警报显示0为元素的长度fontButtons@mungaihkamau-确保已执行脚本