JS在循环中使用name

JS use name in loop

本文关键字:name 循环 JS      更新时间:2023-09-26

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

在循环中,我想使用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'));
    }
}
演示

div标签不能有name属性,使用id代替

 <div class="country_events" id="a"></div>
 <div class="country_events" id="b"></div>
 <div class="country_events" id="c"></div>
 <div class="country_events" id="d"></div>
 <div class="country_events" id="e"></div>
 document.write(elem.id);

如果你仍然想使用name,那么:

elem.getAttribute('name')

为了获取name属性,你需要使用。getattribute

function jat()
            {
                var cls = document.getElementsByClassName("country_events"); 
                for (n=0; n < 4; n++) 
                {   
                    var elem = cls[n];
                    alert(elem.getAttribute("name"));
                }
            }

jsfiddle

如果你阅读文档,它说JavaScript element.name只适用于以下元素,不包括div:

<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, <input>, <map>, <meta>, <object>, <param>, <select>,<textarea>

另外,不要忘记在你的for循环声明中使用var,否则你会用变量污染全局命名空间:

for (var n = 0; n < 4; n++) {
http://jsfiddle.net/LQRhe/