javascript - JS 在循环中使用名称

标签 javascript for-loop getelementsbytagname getelementsbyclassname

我已经尝试了很多次,但没有任何效果:

在循环中,我想使用 nameid 属性,但它们不起作用。 var tag[] [number] 不起作用。它只打印 undefined 一次。

我猜这是一个外部问题。

<html>
    <head>
        <script type="text/javascript">
            function jat()
            {
                var cls = document.getElementsByClassName("country_events"); 

                for (n=0; n < 4; n++) 
                {   
                    var elem = cls[n];
                    document.write(elem.name);
                }
            }

            function jat2()
            {
                var cls = document.getElementsByTagName("country");

                for (n=0; n < 4; n++) 
                {   
                    var elem = cls[n];
                    document.write(elem.name);
                }
            }
        </script>
    </head>

    <body>
        <div class="country_events" name="a"></div>
        <div class="country_events" name="b"></div>
        <div class="country_events" name="c"></div>
        <div class="country_events" name="d"></div>
        <div class="country_events" name="e"></div>

        <country class="country_events" name="a"></country>
        <country class="country_events" name="b"></country>
        <country class="country_events" name="c"></country>
        <country class="country_events" name="d"></country>
        <country class="country_events" name="e"></country>

        <input type="button" value="1" onclick="jat()"></button>
        <input type="button" value="2" onclick="jat2()"></button>
    </body>

</html>

这两个函数都只打印undefined

最佳答案

div 元素没有 name 属性,您需要使用 elem.getAttribute('name') 来访问非标准属性.

HTML 根本没有 country 标记,因此它们也没有 name 属性。因此,您再次需要使用 getAttribute

一般来说,您不应向 HTML 元素添加自定义属性。名为 data-XXX 的属性是为用户保留的,您应该使用它们。

function jat() {
    var cls = document.getElementsByClassName("country_events");

    for (n = 0; n < 4; n++) {
        var elem = cls[n];
        console.log(elem.getAttribute('name'));
    }
}

function jat2() {
    var cls = document.getElementsByTagName("country");

    for (n = 0; n < 4; n++) {
        var elem = cls[n];
        console.log(elem.getAttribute('name'));
    }
}

DEMO

关于javascript - JS 在循环中使用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24298049/

相关文章:

java - 计算浏览器文本布局

javascript - 给定一个整数数组 ‘num’ 返回该数组加 1

java - 节点列表未填充

javascript - 按标签名删除元素

javascript - 比较两个 +new 日期字符串

javascript - 强制鼠标滚轮滚动到最后一部分

javascript - 如何将具有相同键的一组对象组合成一个对象?

php - PHP 中使用 foreach 和 for 循环的问题

c - fgetc 在使用 for 循环读取 2d 像素图时丢弃字符

javascript - 在 JavaScript 中获取元素 ID 和通用元素